Cmd Environment

Список переменных

В современных ОС компании Microsoft, построенных на платформе NT, для получения информации о системе используются следующие переменные (Полужирным выделен текст, применяемый только к Windows Vista/7):

Название | Тип | Описание
ALLUSERSPROFILE | локальная | Возвращает размещение профиля «All Users». В Windows 7 возвращает путь на папку C:\ProgramData\
APPDATA | системная | Возвращает используемое по умолчанию размещение данных приложений. В Windows XP это C:\Documents and Settings\%UserName%\Application Data. В Windows 7 C:\Users\%UserName%\AppData\Roaming
CD | локальная | Указывает путь текущей папки. Идентична команде CD без аргументов.
CMDCMDLINE | локальная | точная команда использованная для запуска текущего cmd.exe.
CMDEXTVERSION | системная | версия текущего Command Processor Extensions.
COMMONPROGRAMFILES | системная | Расположение каталога "Common Files" (обычно %ProgramFiles%\Common Files)
COMMONPROGRAMFILES(x86) | системная | Расположение каталога "Common Files" в Program Files (x86) для x64 ОС (обычно %ProgramFiles(x86)%\Common Files)
COMPUTERNAME | системная | имя компьютера
COMSPEC | системная | путь до исполняемого файла shell
DATE | системная | Возвращает текущую дату. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe.
ERRORLEVEL | системная | Возвращает код ошибки последней использовавшейся команды. Значение, не равное нулю, обычно указывает на наличие ошибки.
HOMEDRIVE | системная | Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
HOMEPATH | системная | Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
HOMESHARE | системная | Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
LOCALAPPDATA | системная | Возвращает используемое по умолчанию локальное размещение данных приложений (C:\Users\%UserName%\AppData\Local)
LOGONSERVER | локальная | имя контроллера домена, использовавшегося для авторизации текущего пользователя
NUMBER_OF_PROCESSORS | системная | количество процессоров в системе
OS | системная | название операционной системы. Windows XP и Windows 2000 отображаются как Windows_NT.
PATH | системная | Указывает путь поиска для исполняемых файлов.
PATHEXT | системная | Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.
PROCESSOR_ARCHITECTURE | системная | архитектура процессора. Возможные варианты: x86, IA64.
PROCESSOR_IDENTIFIER | системная | описание процессора (в Интернете часто встречается ошибочное написание PROCESSOR_IDENTFIER - пропущена буква)
PROCESSOR_LEVEL | системная | номер модели процессора
PROCESSOR_REVISION | системная | ревизия процессора
PROGRAMDATA | системная | Возвращает путь на папку C:\ProgramData\ (аналогично ALLUSERSPROFILE)
PROGRAMFILES | системная | путь к папке Program Files
PROGRAMFILES(x86) | системная | путь к папке Program Files (x86) в x64 системах, для приложений архитектуры x86
PROMPT | локальная | Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.
PUBLIC | системная | В Windows 7 возвращает путь на папку C:\Users\Public
RANDOM | системная | случайное десятичное число от 0 до 32767. Генерируется Cmd.exe
SESSIONNAME | ? | Значение по умолчанию "Console"
SYSTEMDRIVE | системная | диск, на котором расположена корневая папка Windows
SYSTEMROOT | системная | путь к корневой папке Windows
TEMP or TMP | системная и локальная | Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP. Потенциально TEMP и TMP могут указывать на разные каталоги, но обычно - совпадают.
TIME | системная | Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe. Дополнительные сведения о команде time см. в разделе Time.
USERDOMAIN | локальная | имя домена, которому принадлежит текущий пользователь
USERNAME | локальная | имя текущего пользователя
USERPROFILE | локальная | путь к профайлу текущего пользователя
WINDIR | системная | директория в которую установлена Windows

Работа с переменными

Чтобы получить доступ к значению переменной, необходимо поставить знак % перед и после её названия, например:
echo %PROCESSOR_ARCHITECTURE%

Чтобы установить значение переменной:
SET TEMP=C:\TEMP

Кроме того, с переменными среды можно работать, нажав кнопку «Переменные среды» на вкладке «Дополнительно» в диалоговом окне «Свойства системы» (контекстное меню значка «Мой компьютер» → пункт «Свойства»).

Так же необходимо помнить, что в отличие от UNIX-систем, в DOS и стандартной командной строке Windows, переменные среды не наследуются запускаемыми процессами, а используются совместно. Это позволяет, например, возвращать через них результаты работы программ, но с другой стороны создаёт возможность порчи или переполнения. Особенно актуально переполнение для переменной PATH, потому как она часто дополняется при работе различных скриптов. При возникновении такого переполнения достаточно просто перезапустить интерпретатор командной строки. Интерпретаторы, портированные из UNIX-систем (например, Z-shell) такой проблеме не подвержены.