Использование переменных среды в Cmd.exe
Среда командной оболочки Cmd.exe определяется переменными, задающими поведение командной оболочки и операционной системы. Имеется возможность определить поведение среды командной оболочки или среды всей операционной системы с помощью двух типов переменных среды: системных и локальных. Системные переменные среды определяют поведение глобальной среды операционной системы. Локальные переменные среды определяют поведение среды в данном экземпляре Cmd.exe.
Системные переменные среды заданы заранее в операционной системе и доступны
для всех процессов
Локальные переменные среды доступны, только когда пользователь, для которого они были созданы, вошел в систему. Локальные переменные из куста HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение глобальной среды операционной системы.
В следующем списке представлены различные типы переменных в порядке убывания приоритета.
- Встроенные системные переменные
- Системные переменные куста HKEY_LOCAL_MACHINE
- Локальные переменные куста HKEY_CURRENT_USER
- Все переменные среды и пути указаны в файле Autoexec.bat.
- Все переменные среды и пути указаны в сценарии входа в систему (если он имеется).
- Переменные, используемые интерактивно в сценарии или пакетном файле
В командной оболочке каждый экземпляр Cmd.exe наследует среду своего родительского приложения. Поэтому можно изменять переменные в новой среде Cmd.exe, что не повлияет на среду родительского приложения.
В следующей таблице приведен список системных и локальных переменных среды
для
Переменная | Тип | Описание |
---|---|---|
Локальная | Возвращает размещение профиля «All Users». | |
Локальная | Возвращает используемое по умолчанию размещение данных приложений. | |
Локальная | Возвращает путь к текущей папке. | |
Локальная | Возвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe. | |
Системная | Возвращает номер версии текущих расширений обработчика команд. | |
Системная | Возвращает имя компьютера. | |
Системная | Возвращает путь к исполняемой командной оболочке. | |
Системная | Возвращает текущие данные. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe. Дополнительные сведения о команде date см. в разделе Date. | |
Системная | Возвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки. | |
Системная | Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы». | |
Системная | Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы». | |
Системная | Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы». | |
Локальная | Возвращает имя контроллера домена, который проверял подлинность текущей сессии. | |
Системная | Задает количество процессоров, установленных на компьютере. | |
Системная | Возвращает имя операционной системы. При использовании
| |
Системная | Указывает путь поиска для исполняемых файлов. | |
Системная | Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые. | |
Системная | Возвращает архитектуру процессора. Значения: x86, IA64. | |
Системная | Возвращает описание процессора. | |
Системная | Возвращает номер модели процессора, установленного на компьютере. | |
Системная | Возвращает номер модификации процессора. | |
Локальная | Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe. | |
Системная | Возвращает произвольное десятичное число от 0 до 32767. Создается командой Cmd.exe. | |
Системная | Возвращает имя диска, содержащего корневой каталог | |
Системная | Возвращает размещение системного каталога
| |
Системная и пользовательская | Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP. | |
Системная | Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe. Дополнительные сведения о команде time см. в разделе Time. | |
Локальная | Возвращает имя домена, содержащего список учетных записей пользователей. | |
Локальная | Возвращает имя пользователя, выполнившего вход в систему. | |
Локальная | Возвращает размещение профиля для текущего пользователя. | |
Системная | Возвращает размещение каталога операционной системы. |
Установка переменных среды
Используйте команду set для создания, удаления или отображения переменных среды. Команда set изменяет переменные только в среде текущей оболочки.
Чтобы отобразить переменную, в командной строке введите:
set имя_переменной
Чтобы добавить переменную, в командной строке введите:
set variablename=значение
Чтобы удалить переменную, в командной строке введите:
set имя_переменной=
Имеется возможность использовать большинство символов в качестве значений переменных, в том числе пробел. При использовании специальных символов, таких как <, >, &, или ^, перед ними следует помещать управляющий символ (^) или кавычки. При использовании кавычек они включаются в значение переменной, так как все символы, следующие после знака равенства принимаются за значение переменной. Учтите следующие примеры.
- Чтобы создать значение переменной new&name ,введите:
set varname=new^&name
- Чтобы создать значение переменной "new&name" ,введите:
set varname="new&name"
- При вводе в командной строке set varname=new&name появляется
следующее сообщение об ошибке:
"'name' is not recognized as an internal or external command, operable program or batch file."
В именах переменных регистр символов не учитывается. Однако, команда set отображает значение переменной так, как оно было введено. Можно комбинировать символы нижнего и верхнего регистра в именах переменных, чтобы облегчить восприятие кода (например, ИмяПользователя).
Примечания
- Максимальный размер отдельной переменной среды составляет 8192 байта.
- Максимальный общий размер всех переменных среды, включая имена переменных и знак равенства, составляет 65 536 Кбайт.
Подстановка значений в переменные среды
Чтобы иметь возможность подставлять значения в переменную среды из командной
строки или из сценариев, следует заключить имя соответствующей переменной в
символы процентов (