来自ss64.com: / I:忽略对当前环境的任何更改。
这是什么意思?如果您可以提供使用示例及其影响或不影响的内容,那就太棒了(网站上没有提供,谷歌搜索没有运气)。
答案 0 :(得分:3)
/I
表示新环境将是传递给cmd.exe而不是当前环境的原始环境。对环境变量,路径所做的任何更改都不会反映在当前的START实例中。
它将Cmd.exe启动环境传递给新的命令提示符窗口,而不是其他任何内容。
请参阅this
答案 1 :(得分:3)
如果您通过定义变量来修改当前环境;
set foo=bar
start app.exe
App.exe会将%foo%
视为"bar"
set foo=bar
start /i app.exe
App.exe会将%foo%
视为未定义。
答案 2 :(得分:1)
从W7框上运行start /?
:
新的环境将是 原始环境传递给了 cmd.exe而不是当前的 环境。
因此,给出的环境变量是赋予cmd
实例的start
,而不是系统中存储的当前环境。
示例:
> set lol=1
> echo %lol%
1
> cmd
> echo %lol%
1
现在,如果我要调用运行echo %lol%
的批处理文件,但使用/I
开关进行启动 - %lol
将无法定义,因为我已更改原始环境设置传递给我原来的cmd.exe
。
你为什么要用它?好吧,你需要暂时更改%PATH%,然后调用一个可能依赖于原始版本的脚本。 start /I
在这里是理想的,因为无论你将它设置为什么,传递给cmd
start
的环境都将是你开始第一个{{1}实例之前的环境。 }}