Командная строка Windows: START Command Switch / я имею в виду? - PullRequest
1 голос
/ 10 июня 2011

с сайта ss64.com: / I: игнорировать любые изменения в текущей среде.

Что это значит? Если бы вы могли привести примеры использования и то, как оно влияет или не влияет, это было бы замечательно (ни один из них не представлен на веб-сайте, и поиск в Google не дал удачи).

Ответы [ 3 ]

3 голосов
/ 10 июня 2011

Если вы изменили текущую среду, определив переменную;

set foo=bar
start app.exe

App.exe будет видеть %foo% как "bar"

set foo=bar
start /i app.exe

App.exe будет видеть %foo% как неопределенное.

3 голосов
/ 10 июня 2011

/I означает, что новая среда будет исходной средой, переданной cmd.exe, а не текущей средой. Любые изменения, внесенные в переменные среды, пути, не будут отражены в текущем экземпляре START.

Он передает среду запуска Cmd.exe в новое окно командной строки и ничего больше.

См. это

1 голос
/ 10 июня 2011

После запуска start /? на моем W7 box:

Новая среда будет исходная среда передана 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, будет такой, какой она была до того, как вы запустили свой первый экземпляр cmd.

...