一种方法是什么Magoo和Stephan建议已经:
pushd "%ProgramFiles%\MyApplication"
rem Other commands.
popd
这种解决方案甚至因为默认情况下启用了命令扩展UNC路径如PUSHD临时将网络共享映射到一个驱动器号,并将此网络驱动器设置为当前目录。
另一种解决方案是使用SETLOCAL,CD和ENDLOCAL其中有环境变量,命令扩展的所有修改的优势和setlocal
和endlocal
之间的命令进行延迟扩展没有为命令没关系经过endlocal
命令行。
setlocal EnableExtensions DisableDelayedExpansion
cd /D "%ProgramFiles%\MyApplication"
rem Other commands running in their own environment, here running with command
rem extensions explicitly enabled and delayed expansion explicitly disabled.
endlocal
命令ENDLOCAL也恢复当前目录上的SETLOCAL执行被设置。
参见change directory command cd ..not working in batch file after npm install的回答更多的细节有关PUSHD(推目录),POPD(弹出目录),SETLOCAL(设置本地环境),CD(更改目录)和ENDLOCAL(结束当地环境)。
为了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
cd /?
endlocal /?
rem /?
setlocal /?
popd /?
pushd /?
注,'cd'有有用的'/ D'参数。 'pushd' /'popd'是另一种选择。 – Stephan