11

Есть ли способ установить переменные среды для одной команды в Windows, например, ENVVAR=abc command в Unix?

Кажется, что переменные, установленные командой set в Windows, остаются для следующих команд, но это не то, что я хочу.

1 ответ1

17

Есть ли способ установить переменные среды для одной команды?

Из текущей оболочки cmd :

Вы должны очистить переменную самостоятельно.

set ENVVAR=abc && dir & set ENVVAR=

Из пакетного файла:

Вы можете использовать setlocal и endlocal .

@echo off
setlocal 
  set ENVVAR=abc && dir
endlocal

Используйте дочернюю оболочку cmd :

Вы можете использовать cmd /c для создания дочерней оболочки.

Переменная устанавливается в дочерней оболочке и не влияет на родительскую оболочку (как указано в комментарии jpmc26).

cmd /C "set ENVVAR=abc && dir"

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • cmd - Запустить новую оболочку CMD и (необязательно) запустить команду / исполняемую программу.
  • endlocal - завершить локализацию изменений среды в командном файле. Передача переменных из одного пакетного файла в другой.
  • перенаправление - операторы перенаправления.
  • set - отображать, устанавливать или удалять переменные окружения CMD. Изменения, сделанные с помощью SET, будут сохраняться только в течение текущего сеанса CMD.
  • setlocal - устанавливает параметры для контроля видимости переменных среды в командном файле.

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