9

Есть ли способ нажать и вытолкнуть все переменные среды в пакетном скрипте? Например, я хотел бы сделать что-то вроде этого:

pushEnvironmentVariables
call "%VS140COMNTOOLS%\vsvars32.bat"
(do some stuff...)
popEnvironmentVariables
pushEnvironmentVariables
call "%VS90COMNTOOLS%\vsvars32.bat"
(do some other stuff...)
popEnvironmentVariables

1 ответ1

12

Используйте setlocal, смотрите setlocal /? или ss64.com/nt/setlocal

Setlocal
call "%VS140COMNTOOLS%\vsvars32.bat"
(do some stuff...)
Endlocal
Setlocal
call "%VS90COMNTOOLS%\vsvars32.bat"
(do some other stuff...)
Endlocal

Чтобы сохранить текущее состояние переменной, вы можете сделать

set >MyVarStatus.txt

и восстановить позже

@Echo off
For /f "tokens=1* delims==" %%A in (
  'findstr /V "^Path" MYVarStatus.txt '
) Do Set %%A=%%B

это исключило бы переменные Path.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .