我有文件assist.cmd,该文件包含内容,位于我的%path%中
pushd m:\Documents\Code\assist当我在windows终端(新的终端)上输入assist时,我得到:
PS C:\Users\User> assist
C:\Users\User>pushd m:\Documents\Code\assist
PS C:\Users\User>当我自己复制pushd命令时,它可以工作,但在脚本中使用时却不起作用。
有什么想法吗?
发布于 2020-05-26 20:56:48
当您启动BAT脚本"assist.cmd“时,将启动一个新的子进程"cmd.exe”。命令处理程序执行BAT脚本,该进程的当前工作目录实际上已更改。此后,该过程在BAT脚本完成后终止。
子进程的当前工作目录不会更改PowerShell进程的工作目录。这就是为什么.cmd脚本不能用来执行所需的帮助。
您可以使用包含Push-Location或其别名pushd的PowerShell脚本"assist.ps1“,并通过dot sourcing语法调用它
. assist.ps1发布于 2020-05-26 21:39:37
此外,在运行.cmd文件时,您运行的是cmd附带的pushd,而不是pushd powershell命令。https://blog.brainasoft.com/all-internal-commands-of-cmd/
https://stackoverflow.com/questions/62022142
复制相似问题