首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows终端未通过脚本更改目录

Windows终端未通过脚本更改目录
EN

Stack Overflow用户
提问于 2020-05-26 20:26:37
回答 2查看 50关注 0票数 0

我有文件assist.cmd,该文件包含内容,位于我的%path%中

代码语言:javascript
复制
pushd m:\Documents\Code\assist

当我在windows终端(新的终端)上输入assist时,我得到:

代码语言:javascript
复制
PS C:\Users\User> assist

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

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

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-26 20:56:48

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

子进程的当前工作目录不会更改PowerShell进程的工作目录。这就是为什么.cmd脚本不能用来执行所需的帮助。

您可以使用包含Push-Location或其别名pushd的PowerShell脚本"assist.ps1“,并通过dot sourcing语法调用它

代码语言:javascript
复制
. assist.ps1
票数 2
EN

Stack Overflow用户

发布于 2020-05-26 21:39:37

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62022142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档