如何在隔离环境中运行批处理文件?

如何在隔离环境中运行批处理文件?

批处理文件对环境所做的更改会保留在调用 cmd.exe 的环境中。

认为set.bat

SET MYVAR=42

然后在 中cmd.exe输入并看到:

C:\Users\Me>.\set.bat
C:\Users\Me>echo %MYVAR%
42

如果我有一个批处理文件(由其他人提供,并且超出了我的技能范围)以非幂等的方式配置环境,并且我在命令提示符的一个会话中多次执行它,则可能会导致不良行为。

如何在隔离环境中运行批处理文件,而不会操纵 cmd.exe 的环境?我强调,在实现这一点时,保留所有控制台输出非常重要。

答案1

我建议编辑脚本并在前面添加SETLOCAL命令

或者,在cmd实例如下:

cmd /c .\set.bat

环境变量值由新的 CMD 会话继承,而父环境保持不变。

相关内容