0

我有文件 assistant.cmd,它在我的 %path% 内,内容

pushd m:\Documents\Code\assist

当我在 Windows 终端(新终端)上输入协助时,我得到:

PS C:\Users\User> assist

C:\Users\User>pushd m:\Documents\Code\assist
PS C:\Users\User>

当我自己复制 pushd 命令时,它可以工作,但从脚本中使用时却不行。

有任何想法吗?

4

2 回答 2

2

当您启动 BAT 脚本“assist.cmd”时,会启动一个新的子进程“cmd.exe”。命令处理器执行 BAT 脚本,该进程的当前工作目录实际上已更改。此后,该过程在 BAT 脚本完成后终止。

子进程的当前工作目录不会改变 PowerShell 进程的工作目录。这就是为什么 .cmd 脚本不能用于执行预期帮助的原因。

您可以使用包含Push-Location或其别名的 PowerShell 脚本“assist.ps1”并使用点源语法pushd调用它

. assist.ps1
于 2020-05-26T12:56:47.987 回答
1

此外,在运行 .cmd 文件时,您正在运行 cmd 附带的 pushd,而不是 pushd powershell 命令。 https://blog.brainasoft.com/all-internal-commands-of-cmd/

于 2020-05-26T13:39:37.217 回答