#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
.