如果我运行批处理文件
目录没有改变,但是如果我运行
setlocal
chdir ..
目录没有改变,但是如果我运行
setlocal
endlocal
chdir ..
程序正常工作。这正是使用setlocal所期望的。然而,当你阅读setlocal的定义时,它与环境变量的查看方式有关,并不完全明显。我希望这是一个好机会来解释setlocal的实际作用以及为什么它会干扰chdir。
%__CD__%
,它与%CD%
的唯一区别是末尾的 \。此外,您可以定义一个真正的__CD__
环境变量,但无法访问它 -%__CD__%
始终返回当前目录并带有末尾的 \,即使已定义__CD__
变量。 - dbenham