Windows命令行:START命令开关/我的意思?

时间:2011-06-10 16:04:49

标签: windows command-line switch-statement

来自ss64.com: / I:忽略对当前环境的任何更改。

这是什么意思?如果您可以提供使用示例及其影响或不影响的内容,那就太棒了(网站上没有提供,谷歌搜索没有运气)。

3 个答案:

答案 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}实例之前的环境。 }}