Как вызвать файл .bat и установить локальные переменные среды в одной строке в Windows?

Я вызываю файл .bat в Windows. Файл .bat зависит от наличия некоторых переменных среды.

Как я могу установить эти переменные среды одновременно с вызовом файла .bat, чтобы переменные среды были локальными для файла .bat и не распространялись как глобальные переменные.

В идеале я бы хотел сделать это одной строкой ...


person Nick    schedule 13.12.2013    source источник
comment
Если они действительно относятся к файлу, почему бы не указать их в файле? - Другой способ - передать скрипту параметры.   -  person I'm with Monica    schedule 13.12.2013
comment
Этот файл уже написан и является частью другого программного обеспечения. Я хочу иметь возможность вызывать файл bat несколько раз, каждый с разными значениями переменных.   -  person Nick    schedule 13.12.2013


Ответы (1)


Вы ищете _1 _ / _ 2_. Переменные, назначенные между этими операторами, не влияют на остальную часть скрипта.

setlocal
set LOCALVAR=XYZ
call MyScript.bat
endlocal

Вы можете написать четыре оператора в строке, если предпочитаете использовать & в качестве разделителя:

setlocal & set LOCALVAR=XYZ & call MyScript.bat & endlocal
person GOTO 0    schedule 13.12.2013
comment
Важно отметить, что SETLOCAL работает только из командного файла. Таким образом, код в этом ответе должен быть в пакетном файле - он не будет работать, если используется непосредственно в интерактивной командной строке. - person dbenham; 14.12.2013