有人可以解释一下两者之间有什么区别吗
call someBatchFile.bat ...
And
cmd /C someBatchFile.bat ...
他们都向我建议作为解决方案this问题,但我不明白为什么它们都有效,更重要的是,如果有任何显着差异我必须意识到。
不同之处在于call
执行另一个批处理文件在相同的背景下调用程序的,因此它们共享相同的环境变量和其他状态(例如echo ON/OFF
或延迟扩展),而cmd /C
在完全独立的上下文中执行另一个批处理文件,因此在调用的批处理文件中所做的任何更改都是not反映在原始文件中。
只是作为个人注释,我曾经命名内部子程序通过调用批处理文件call
, and 外部子程序通过调用的cmd /C
(and overlay直接调用批处理文件,无需call
nor cmd /C
, that inherits调用者批处理文件的行为和上下文)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)