批处理文件对环境所做的更改会保留在调用 cmd.exe 的环境中。
认为set.bat
:
SET MYVAR=42
然后在 中cmd.exe
输入并看到:
C:\Users\Me>.\set.bat
C:\Users\Me>echo %MYVAR%
42
如果我有一个批处理文件(由其他人提供,并且超出了我的技能范围)以非幂等的方式配置环境,并且我在命令提示符的一个会话中多次执行它,则可能会导致不良行为。
如何在隔离环境中运行批处理文件,而不会操纵 cmd.exe 的环境?我强调,在实现这一点时,保留所有控制台输出非常重要。