我有文件 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 命令时,它可以工作,但从脚本中使用时却不行。
有任何想法吗?
我有文件 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 命令时,它可以工作,但从脚本中使用时却不行。
有任何想法吗?
当您启动 BAT 脚本“assist.cmd”时,会启动一个新的子进程“cmd.exe”。命令处理器执行 BAT 脚本,该进程的当前工作目录实际上已更改。此后,该过程在 BAT 脚本完成后终止。
子进程的当前工作目录不会改变 PowerShell 进程的工作目录。这就是为什么 .cmd 脚本不能用于执行预期帮助的原因。
您可以使用包含Push-Location
或其别名的 PowerShell 脚本“assist.ps1”并使用点源语法pushd
调用它
. assist.ps1
此外,在运行 .cmd 文件时,您正在运行 cmd 附带的 pushd,而不是 pushd powershell 命令。 https://blog.brainasoft.com/all-internal-commands-of-cmd/