Командная строка Windows: командный переключатель «ПУСК» / я имею в виду?

#windows #command-line #switch-statement

#Windows #командная строка #switch-инструкция

Вопрос:

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

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

Комментарии:

1. Спасибо всем за ваши ответы! С ними все в порядке, но мне пришлось выбрать тот, который был бы надежным и по существу (с минимальным чтением = P). Однако я всех подбодрил.

Ответ №1:

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

 set foo=bar
start app.exe
  

App.exe рассматривал бы %foo% как "bar"

 set foo=bar
start /i app.exe
  

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

Комментарии:

1. Итак, тогда вы фактически создаете НОВУЮ среду, полностью игнорируя любые правила, размещенные перед командой START?

2. да… Чтобы добавить к нему, вы бы изменили среду по умолчанию. Под этим я подразумеваю, что вы бы создали системные переменные.

Ответ №2:

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

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

Смотрите это

Комментарии:

1. все те, которые установлены для окна cmd по умолчанию, установлены… Те, которые временно установлены пользователем, не являются.

Ответ №3:

Из-за запуска 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 .