Использование переменных среды в Командной строке. Cmd переменные среды


Урок 4 по CMD - переменные окружения

Практически, вся работа с командной строкой (cmd) основывается на переменных окружения. Так, если в консольном окне прописать на выполнение команду, путь к которой отсутствует, то вначале происходит поиск данной команды на внутреннем уровне.

Если окажется, что внутренняя команда с таким именем существует, то произойдет ее вызов. Если же окажется, что внутренней команды с подобным названием нет, то произойдет поиск вначале в текущем каталоге, а уже потом в тех папках, что перечислены в переменной окружения cmd PATH. Если же и в этом случае соответствия не найдено, командная строка вернет ошибку.

Что бы просмотреть содержимое cmd переменной окружения (среды) PATH, достаточно в консольном окне ввести команду path и нажать ENTER.

Видим, что пути отделяются друг от друга точкой с запятой, точка с запятой позволяет командной строке определить, где начинается и заканчивается путь. Вы можете получить содержимое переменной окружения и таким способом:

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

Довольно часто при работе с командной строкой, может понадобиться прописать временный путь к командам:

В данном примере мы добавили к содержимому в переменные окружения cmd %PATH% путь D:\work, и если теперь ввести на выполнение имя программы в каталоге D:\work, то она успешно запустится. Но помните, временный путь действует только в пределах текущего сеанса командной строки.

Следующий пример значимости переменных окружения является расширение исполняемых файлов. Полагаю, вы замечали, что можно просто ввести имя программы, например, notepad или calc в окне командной строки, и она сразу запуститься, при этом, расширение файла указывать не надо. Все расширения исполняемых файлов задаются в переменной окружения %РАТНЕХТ%, что бы их просмотреть, можно ввести:

Как и при поиске пути, поиск в переменной cmd окружения производится с начала, и все имена расширений отделяются точкой с запятой. Нужно понимать, что если вы введете на выполнение команду notepad, а в системном каталоге есть notepad.com и notepad.exe, то произойдет вызов той программы, чье расширение находится первым. Исполняемыми считаются и файлы сценариев (при условии, что расширение сценария присутствует в списке), например, сценарии сервера Windows Script Host.

При желании, можно подшутить над другом – изменить расположение списка расширений так, что бы вначале находилось, ну скажем расширение .vbs, с помощью языка VBScript написать сценарий, который будет выводить диалоговое сообщение “Ваша система взломана. Все винчестеры будут отформатированы после перезагрузки…”. Копии сценария сохранить под разными именами, например: regedit.vbs, cmd.vbs, calc.vbs, notepad.vbs, собственно, под теми именами программ, которые любит запускать ваш друг в окне командной строи или через меню Пуск. Сами файлы разместить в системных каталогах, пути к которым прописаны в %PATH%.

Просмотреть все cmd переменные среды и их содержимое, которые доступны в текущем сеансе командной строки можно с помощью команды set, просто введите ее и нажмите Enter.

Можно просмотреть не только через cmd переменные среды и их содержимое, но и через диалоговое окно системы Windows. Для этого войдите в свойства Мой Компьютер, вкладка дополнительно, внизу будет кнопка “Переменные среды”, нажимаем на нее и смотрим, что прописано в системе. В сервере сценариев Windows Script Host есть объект WScript.Shell, у которого в свою очередь присутствует свойство Environment, которое также позволяет получить информацию о переменных средах Windows, а также метод ExpandEnvironmentStrings которому как параметр передается имя среды (например, %path%, %windir%, %pathext%).

Переменные окружения cmd позволяют получить довольно много системной информации, хотя... ее вы смогли увидеть при выполнении команды set.

scriptcoding.ru

Переменные среды cmd.exe Википедия

Переменная окружения (переменная среды́, англ. environment variable) в Windows[1] используются для хранения текстовых строк пользователя и информации о настройках операционных систем.

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

В современных ОС компании 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 без аргументов.
CLIENTNAME локальная динамическая Переменная определена только в среде удаленного подключения к рабочему столу. Хранит имя компьютера (%COMPUTERNAME%) клиента удаленного доступа.
CMDCMDLINE локальная Точная команда, использованная для запуска текущего cmd.exe.
CMDEXTVERSION системная Версия текущего Command Processor Extensions.
COMMONPROGRAMFILES системная Расположение каталога "Common Files" (обычно %ProgramFiles%\Common Files).
COMMONPROGRAMFILES(x86) системная Расположение каталога "Common Files" в Program Files (x86) для 64-разрядной ОС (обычно %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, AMD64.
PROCESSOR_IDENTIFIER системная Описание процессора (в Интернете часто встречается ошибочное написание PROCESSOR_IDENTFIER - пропущена буква).
PROCESSOR_LEVEL системная Номер модели процессора.
PROCESSOR_REVISION системная Ревизия процессора.
PROGRAMDATA системная Возвращает путь к каталогу C:\ProgramData\ (аналогично ALLUSERSPROFILE).
PROGRAMFILES системная Путь к каталогу Program Files.
PROGRAMFILES(x86) системная Путь к каталогу Program Files (x86) в 64-разрядных системах для приложений архитектуры x86.
PROMPT локальная Возвращает параметры командной строки для текущего интерпретатора. Создаётся командой Cmd.exe.
PUBLIC системная В Windows 7 возвращает путь к каталогу C:\Users\Public.
RANDOM системная Случайное десятичное число от 0 до 32767. Генерируется Cmd.exe.
SAFEBOOT_OPTION системная Существует только в Безопасном режиме. Принимает значение типа безопасного режима в котором работает система. В Безопасном режиме и Безопасном режиме с поддержкой командной строки принимает значение MINIMAL. В Безопасном режиме с поддержкой сетевых драйверов принимает значение Network.
SESSIONNAME локальная Хранит имя активного пользовательского сеанса. При локальном входе имеет значение "Console", при удаленном доступе имеет вид RDP-Tcp#<номер сеанса>
SYSTEMDRIVE системная Диск, на котором расположен корневой каталог Windows.
SYSTEMROOT системная Путь к корневому каталогу Windows.
TEMP и 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), такой проблеме не подвержены.

Получить значение переменной в программном коде можно с помощью метода ExpandEnvironmentStrings COM-объекта WScript.Shell:

WScriptShell = ObjCreate("WScript.Shell") UserName = WScriptShell.ExpandEnvironmentStrings("%USERNAME%")

Следует учитывать, что набор значений переменных среды получается процессом во время его запуска, все запускаемые им подчиненные процессы получают значения переменных из этого набора, если второй процесс (независимый от первого) изменяет значение переменной среды или создает новую переменную, эти изменения не будут доступны первому процессу.

Значения переменных среды LOGONSERVER, CLIENTNAME, SESSIONNAME, APPDATA, HOMEDRIVE, HOMEPATH устанавливаются при открытии сеанса на основании значений в ветке реестра [HKEY_CURRENT_USER\Volatile Environment].

Значения глобальных переменных среды типа PATH, TEMP и пр. хранятся в ветке реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment].

Трудности перевода

Очень часто встречается неправильное понимание слова «среды» в словосочетании «Переменные среды». Непонимание возникает из-за прочтения слова «среды» с неправильным ударением на первый слог, что приводит к распознаванию этого слова как формы именительного падежа множественного числа слова «среда» (окружение). Правильным является понимание слова «среды» как формы родительного падежа единственного числа слова «среда» и произношение с ударением на второй слог.

Таким образом, неправильно говорить, например, «с переменными сре́дами» ("с переменными окружениями"), а правильно — «с переменными среды́» ("с переменными окружения").

Примечания

Ссылки

1 - https://www.microsoft.com/en-us/windows

2 - https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682653(v=vs.85).aspx

wikiredia.ru

WindowsFAQ.ru

Переменная

Тип

Описание

%ALLUSERSPROFILE%

Локальная

Возвращает размещение профиля «All Users».

%APPDATA%

Локальная

Возвращает используемое по умолчанию размещение данных приложений.

%CD%

Локальная

Возвращает путь к текущей папке.

%CMDCMDLINE%

Локальная

Возвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe.

%CMDEXTVERSION%

Системная

Возвращает номер версии текущих расширений обработчика команд.

%COMPUTERNAME%

Системная

Возвращает имя компьютера.

%COMSPEC%

Системная

Возвращает путь к исполняемой командной оболочке.

%DATE%

Системная

Возвращает текущие данные. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe.

%ERRORLEVEL%

Системная

Возвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки.

%HOMEDRIVE%

Системная

Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%HOMEPATH%

Системная

Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%HOMESHARE%

Системная

Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%LOGONSEVER%

Локальная

Возвращает имя контроллера домена, который проверял подлинность текущей сессии.

%NUMBER_OF_PROCESSORS%

Системная

Задает количество процессоров, установленных на компьютере.

%OS%

Системная

Возвращает имя операционной системы. При использовании Windows 2000 имя операционной системы отображается как Windows_NT.

%PATH%

Системная

Указывает путь поиска для исполняемых файлов.

%PATHEXT%

Системная

Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.

%PROCESSOR_ARCHITECTURE%

Системная

Возвращает архитектуру процессора. Значения: x86, IA64.

%PROCESSOR_IDENTFIER%

Системная

Возвращает описание процессора.

%PROCESSOR_LEVEL%

Системная

Возвращает номер модели процессора, установленного на компьютере.

%PROCESSOR_REVISION%

Системная

Возвращает номер модификации процессора.

%PROMPT%

Локальная

Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.

%RANDOM%

Системная

Возвращает произвольное десятичное число от 0 до 32767. Создается командой Cmd.exe.

%SYSTEMDRIVE%

Системная

Возвращает имя диска, содержащего корневой каталог Windows XP (т. е. системный каталог).

%SYSTEMROOT%

Системная

Возвращает размещение системного каталога Windows XP.

%TEMP% и %TMP%

Системная и пользовательская

Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.

%TIME%

Системная

Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe.

%USERDOMAIN%

Локальная

Возвращает имя домена, содержащего список учетных записей пользователей.

%USERNAME%

Локальная

Возвращает имя пользователя, выполнившего вход в систему.

%USERPROFILE%

Локальная

Возвращает размещение профиля для текущего пользователя.

%WINDIR%

Системная

Возвращает размещение каталога операционной системы.

www.windowsfaq.ru

Использование переменных среды в Командной строке (Cmd.exe)

Переменные устанавливают среду Cmd.exe. Они прописывают не только особенности поведения командной оболочки, но и самой ОС. Переменные следует подразделить на два вида, каждый из которых обладает уникальными свойствами: системные и локальные. Первый вид позволяет задать поведение глобальной среды ОС в процессе осуществления работы. Локальные переменные устанавливают деятельность среды исключительно в определенном экземпляре Cmd.exe. Это требуется отметить в качестве ключевого отличия.

Его говорить о системных переменных, то он предварительно заложены в ОС и могут быть использованы всеми приложениями. Чтобы внести в них изменения, необходимо обладать администраторскими правами доступа. Самым распространенным местом применения является обеспечение задачи запуска системы. Когда подобное мероприятие осуществлено для конкретного пользователя, можно говорить о возможности использования локальных переменных.

Ниже будет представлен перечень существующих классов переменных на основании важности их приоритета (по убыванию):

  • Встроенные системные. Их необходимо назвать наиболее серьёзными, что предусматривает особое внимание в процессе работы.
  • Переменные системного вида, относящиеся к HKEY_LOCAL_MACHINE.
  • Переменные локального вида, относящиеся к HKEY_CURRENT_USER.
  • Полный перечень переменных и сред, находящихся в документе Autoexec.bat.
  • Полный перечень переменных и сред, находящихся в сценарии начала работы системы. В определенных ситуациях его может и не быть.
  • Интерактивно применяемые переменные для прописанного сценария или пакетного документа.

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

Локальные переменные

Название Информация

%ALLUSERSPROFILE%

Предоставляет сведения о том, где именно находится профиль All Users

%APPDATA%

Предоставляет место нахождения программ, устанавливаемое по умолчанию

%CD%

Позволяет получить путь до используемой папки

%CMDCMDLINE%

Предоставляет строчку команд, с применением которой произведена работа текущего экземпляра Cmd.exe

%LOGONSEVER%

Предоставляет название контроллера домена, осуществляющего проверку подлинности заданной сессии

%PROMPT%

Позволяет выполнить предоставление параметров КА для действующего интерпретатора. Для получения доступа, необходимо воспользоваться Cmd.exe

%USERDOMAIN%

Предоставляет название домена, который обладает перечнем учетных записей юзеров

%USERNAME%

Предоставляет имя юзера, осуществившего вход в систему

%USERPROFILE%

Осуществляет возврат положения аккаунта для текущего юзера

Системные переменные

%CMDEXTVERSION%

Позволяет предоставить номер версии действующих расширений обработчика команд

%COMPUTERNAME%

Предоставляет название устройства, на котором производится работа

%COMSPEC%

Осуществляет выдачу пути к исполняемой командной оболочке

%DATE%

Предоставляет действующие сведения. Следует отметить тот факт, что предусматривается применение формата, аналогичного date /t. Все сведения об указанной команде можно получить непосредственно из соответствующего раздела на сайте

%ERRORLEVEL%

Используется для предоставления кода ошибки последней применяемой команды. Стандартная ситуация предусматривает наличие значения, которое является отличным от нулевого

%HOMEDRIVE%

Осуществляет предоставление названия диска рабочей станции, который связан с каталогом юзера. Требуется устанавливать с учетом нахождения главного каталога

%HOMEPATH%

Выполняет предоставление пути до главного каталога юзера. Следует устанавливать за счет сведений о нахождении главного каталога

%HOMESHARE%

Выполняет предоставление пути до общего главного каталога юзера. Следует устанавливать за счет сведений о нахождении главного каталога

%NUMBER_OF_PROCESSORS%

Определяет количество процессоров, которыми обладает конкретное устройство

%OS%

Передает информацию о том, каким именем обладает ОС на конкретном устройстве. Существуют определенные особенности отображения названия для некоторых типов ОС и это необходимо учитывать

%PATH%

Устанавливает путь поиска для того, чтобы обнаруживать программы

%PATHEXT%

Предоставляет перечень расширений документов, учитываемых ОС в качестве исполняемых

%PROCESSOR_ARCHITECTURE%

Используется в тех случаях, когда необходимо получить архитектуру определенного процессора

%PROCESSOR_IDENTFIER%

Предоставляет короткую информацию о процессоре

%PROCESSOR_LEVEL%

Предоставляет данные о номере модификации процессора

%RANDOM%

Предоставляет любое целое число в диапазоне 0-32767 включительно

%SYSTEMDRIVE%

Выполняет предоставление названия диска, на который записан корневой каталог ОС Windows XP

%SYSTEMROOT%

Предоставляет место расположения системного каталога ОС

%TEMP% и %TMP%

Данные переменные являются системной и пользовательской. Это позволяет осуществить исполнение одинаковых задач при различных ситуациях. Предоставляет временные папки, воспользоваться которыми могут все юзеры. Для определенных программ нужно использовать TEMP или TMP.

%TIME%

Предоставляет сведения о времени на данный момент. Применяется аналогичный time /t формат отображения.

%WINDIR%

Позволяет осуществить возврат каталога ОС

Задание переменных среды

Чтобы выполнить создание, удаление или демонстрацию переменной среды, следует применять специальную команду set. Отличительной особенностью необходимо отметить корректировку переменных исключительно в среде действующей оболочки.

Для выдачи конкретной переменной, предусматривается написание в КС:

set название_переменной

Добавление ещё одной переменной осуществляется за счет прописывания:

set variablename=значение

Для выполнения процедуры удаления, стоит прописывать строку:

set название_переменной=

Системой задаётся применение большинства существующих символов для указания в роли значений. Сюда же можно отнести и проделы. Чтобы применять определённые символы, предварительно требуется ввести (^) или осуществить заключение в кавычки. Если этого не сделать, возникнет вероятность неправильного исполнения или ошибки. Необходимо рассмотреть несколько простых примеров. Допустим, нужно создать переменную new&name. Для осуществления поставленной задачи в КС происходит ввод:

set varname=new^&name

Можете попытаться не использовать спецсимвол (^), но это будет невозможно осуществить. Причина заключается в постоянной выдаче одной и той же ошибки.

Когда устанавливается переменная, то не представляет значения, какие именно буквы используются – большие или малые. Регистр не будет приниматься во внимание. Есть одна отличительная особенность – переменная все-равно станет отображаться именно так, как она была введена. Это позволяет облегчить задачу восприятия, если выполнить применение различных регистров для разграничения при написании названий.

Подстановка в переменные среды

Существует способ выполнить подстановку определенных значений в переменные среды непосредственно из КС или сценария. Для проведения поставленной задачи рекомендуется использовать помещение в символы процента. Это выглядит следующим образом:

%название_переменной%

Предполагается обозначение того факта, что Cmd.exe обязан обращаться сразу к значениям конкретной переменной. Процедура посимвольного сравнения осуществляться не станет. Важно учитывать тот факт, что сама подстановка не считается рекурсивной. Проверка осуществляется исключительно единожды. 

xn--80aa0aebnilejl.xn--p1ai

Использование переменных среды в Cmd.exe

     Среда командной оболочки Cmd.exe определяется переменными, задающими поведение командной оболочки и операционной системы. Имеется возможность определить поведение среды командной оболочки или среды всей операционной системы с помощью двух типов переменных среды: системных и локальных. Системные переменные среды определяют поведение глобальной среды операционной системы. Локальные переменные среды определяют поведение среды в данном экземпляре Cmd.exe.

Системные переменные среды заданы заранее в операционной системе и доступны для всех процессов Windows XP. Только пользователи с привилегиями администратора могут изменять эти переменные. Эти переменные наиболее часто используются в сценариях входа в систему.

Локальные переменные среды доступны, только когда пользователь, для которого они были созданы, вошел в систему. Локальные переменные из куста HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение глобальной среды операционной системы.

В следующем списке представлены различные типы переменных в порядке убывания приоритета.
  1. Встроенные системные переменные
  2. Системные переменные куста HKEY_LOCAL_MACHINE
  3. Локальные переменные куста HKEY_CURRENT_USER
  4. Все переменные среды и пути указаны в файле Autoexec.bat.
  5. Все переменные среды и пути указаны в сценарии входа в систему (если он имеется).
  6. Переменные, используемые интерактивно в сценарии или пакетном файле
В командной оболочке каждый экземпляр Cmd.exe наследует среду своего родительского приложения. Поэтому можно изменять переменные в новой среде Cmd.exe, что не повлияет на среду родительского приложения. В следующей таблице приведен список системных и локальных переменных среды для Windows XP.

Переменная

Тип

Описание

%ALLUSERSPROFILE%

Локальная

Возвращает размещение профиля «All Users».

%APPDATA%

Локальная

Возвращает используемое по умолчанию размещение данных приложений.

%CD%

Локальная

Возвращает путь к текущей папке.

%CMDCMDLINE%

Локальная

Возвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe.

%CMDEXTVERSION%

Системная

Возвращает номер версии текущих расширений обработчика команд.

%COMPUTERNAME%

Системная

Возвращает имя компьютера.

%COMSPEC%

Системная

Возвращает путь к исполняемой командной оболочке.

%DATE%

Системная

Возвращает текущие данные. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe.

%ERRORLEVEL%

Системная

Возвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки.

%HOMEDRIVE%

Системная

Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%HOMEPATH%

Системная

Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%HOMESHARE%

Системная

Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%LOGONSEVER%

Локальная

Возвращает имя контроллера домена, который проверял подлинность текущей сессии.

%NUMBER_OF_PROCESSORS%

Системная

Задает количество процессоров, установленных на компьютере.

%OS%

Системная

Возвращает имя операционной системы. При использовании Windows 2000 имя операционной системы отображается как Windows_NT.

%PATH%

Системная

Указывает путь поиска для исполняемых файлов.

%PATHEXT%

Системная

Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.

%PROCESSOR_ARCHITECTURE%

Системная

Возвращает архитектуру процессора. Значения: x86, IA64.

%PROCESSOR_IDENTFIER%

Системная

Возвращает описание процессора.

%PROCESSOR_LEVEL%

Системная

Возвращает номер модели процессора, установленного на компьютере.

%PROCESSOR_REVISION%

Системная

Возвращает номер модификации процессора.

%PROMPT%

Локальная

Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.

%RANDOM%

Системная

Возвращает произвольное десятичное число от 0 до 32767. Создается командой Cmd.exe.

%SYSTEMDRIVE%

Системная

Возвращает имя диска, содержащего корневой каталог Windows XP (т. е. системный каталог).

%SYSTEMROOT%

Системная

Возвращает размещение системного каталога Windows XP.

%TEMP% и %TMP%

Системная и пользовательская

Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.

%TIME%

Системная

Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe.

%USERDOMAIN%

Локальная

Возвращает имя домена, содержащего список учетных записей пользователей.

%USERNAME%

Локальная

Возвращает имя пользователя, выполнившего вход в систему.

%USERPROFILE%

Локальная

Возвращает размещение профиля для текущего пользователя.

%WINDIR%

Системная

Возвращает размещение каталога операционной системы.

m151163.blogspot.com

Переменных среды и их использование в командной строке Windows cmd.exe

Среда командной оболочки cmd.exe определяется переменными, которые задают поведение командной оболочки и операционной системы.

Есть возможность определить поведение среды командной оболочки или среды всей операционной системы с помощью двух типов переменных среды: системных и локальных.

Системные переменные среды определяют поведение глобальной среды операционной системы, а локальные переменные среды определяют поведение среды в данном экземпляре cmd.exe.

Системные переменные среды заданы поумодчанию в операционной системе и доступны для всех процессов Windows, и пользователи с привилегиями администратора могут изменять эти переменные. Эти переменные наиболее часто используются в сценариях входа в систему.

Локальные переменные среды доступны когда пользователь, для которого они были созданы, вошел в систему. Локальные переменные из куста реестра HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение глобальной среды операционной системы.

Список типов переменных в порядке убывания приоритета.

  1. Встроенные системные переменные
  2. Системные переменные куста реестра HKEY_LOCAL_MACHINE
  3. Локальные переменные куста реестра HKEY_CURRENT_USER
  4. Все переменные среды и пути указаны в файле Autoexec.bat.
  5. Все переменные среды и пути указаны в сценарии входа в систему (если он имеется).
  6. Переменные, используемые интерактивно в сценарии или пакетном файле

В командной оболочке каждый экземпляр cmd.exe наследует среду своего родительского приложения и соответственно можно изменять переменные в новой среде сmd.exe, что никак не повлияет на среду родительского приложения.

Вот список системных и локальных переменных среды для Windows XP.

Переменная

Описание

Тип

%ALLUSERSPROFILE%

Локальная

Возвращает размещение профиля «All Users».

%APPDATA%

Локальная

Возвращает используемое по умолчанию размещение данных приложений.

%CD%

Локальная

Возвращает путь к текущей папке.

%CMDCMDLINE%

Локальная

Возвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe.

%CMDEXTVERSION%

Системная

Возвращает номер версии текущих расширений обработчика команд.

%COMPUTERNAME%

Системная

Возвращает имя компьютера.

%COMSPEC%

Системная

Возвращает путь к исполняемой командной оболочке.

%DATE%

Системная

Возвращает текущие данные. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe.

%ERRORLEVEL%

Системная

Возвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки.

%HOMEDRIVE%

Системная

Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%HOMEPATH%

Системная

Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%HOMESHARE%

Системная

Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

%LOGONSEVER%

Локальная

Возвращает имя контроллера домена, который проверял подлинность текущей сессии.

%NUMBER_OF_PROCESSORS%

Системная

Задает количество процессоров, установленных на компьютере.

%OS%

Системная

Возвращает имя операционной системы. При использовании Windows 2000 имя операционной системы отображается как Windows_NT.

%PATH%

Системная

Указывает путь поиска для исполняемых файлов.

%PATHEXT%

Системная

Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.

%PROCESSOR_ARCHITECTURE%

Системная

Возвращает архитектуру процессора. Значения: x86, IA64.

%PROCESSOR_IDENTFIER%

Системная

Возвращает описание процессора.

%PROCESSOR_LEVEL%

Системная

Возвращает номер модели процессора, установленного на компьютере.

%PROCESSOR_REVISION%

Системная

Возвращает номер модификации процессора.

%PROMPT%

Локальная

Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.

%RANDOM%

Системная

Возвращает произвольное десятичное число от 0 до 32767. Создается командой Cmd.exe.

%SYSTEMDRIVE%

Системная

Возвращает имя диска, содержащего корневой каталог Windows XP (т. е. системный каталог).

%SYSTEMROOT%

Системная

Возвращает размещение системного каталога Windows XP.

%TEMP% и %TMP%

Системная и пользовательская

Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.

%TIME%

Системная

Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe.

%USERDOMAIN%

Локальная

Возвращает имя домена, содержащего список учетных записей пользователей.

%USERNAME%

Локальная

Возвращает имя пользователя, выполнившего вход в систему.

%USERPROFILE%

Локальная

Возвращает размещение профиля для текущего пользователя.

%WINDIR%

Системная

Возвращает размещение каталога операционной системы.

palexa.pp.ua

Командная строка

Среда командной оболочки Cmd.exe определяется переменными, задающими поведение командной оболочки и операционной системы. Имеется возможность определить поведение среды командной оболочки или среды всей операционной системы с помощью двух типов переменных среды: системных и локальных. Системные переменные среды определяют поведение глобальной среды операционной системы. Локальные переменные среды определяют поведение среды в данном экземпляре Cmd.exe.

Системные переменные среды заданы заранее в операционной системе и доступны для всех процессов Windows XP. Только пользователи с привилегиями администратора могут изменять эти переменные. Эти переменные наиболее часто используются в сценариях входа в систему.

Локальные переменные среды доступны, только когда пользователь, для которого они были созданы, вошел в систему. Локальные переменные из куста HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение глобальной среды операционной системы.

В следующем списке представлены различные типы переменных в порядке убывания приоритета.

ПеременнаяТипОписание
%ALLUSERSPROFILE%ЛокальнаяВозвращает размещение профиля «All Users».
%APPDATA%ЛокальнаяВозвращает используемое по умолчанию размещение данных приложений.
%CD%ЛокальнаяВозвращает путь к текущей папке.
%CMDCMDLINE%ЛокальнаяВозвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe.
%CMDEXTVERSION%СистемнаяВозвращает номер версии текущих расширений обработчика команд.
%COMPUTERNAME%СистемнаяВозвращает имя компьютера.
%COMSPEC%СистемнаяВозвращает путь к исполняемой командной оболочке.
%DATE%СистемнаяВозвращает текущие данные. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe.
%ERRORLEVEL%СистемнаяВозвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки.
%HOMEDRIVE%СистемнаяВозвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%HOMEPATH%ЛокальнаяВозвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%HOMESHARE%ЛокальнаяВозвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%LOGONSEVER%ЛокальнаяВозвращает имя контроллера домена, который проверял подлинность текущей сессии.
%NUMBER_OF_PROCESSORS%СистемнаяВозвращает количество процессоров, установленных на компьютере.
%OS%СистемнаяВозвращает имя операционной системы.
%PATH%СистемнаяВозвращает пути поиска для исполняемых файлов.
%PATHEXT%СистемнаяВозвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.
%PROCESSOR_ARCHITECTURE%СистемнаяВозвращает архитектуру процессора. Значения: x86, IA64.
%PROCESSOR_IDENTFIER%СистемнаяВозвращает описание процессора.
%PROCESSOR_LEVEL%СистемнаяВозвращает номер модели процессора, установленного на компьютере.
%PROCESSOR_REVISION%СистемнаяВозвращает номер модификации процессора.
%PROMPT%ЛокальнаяВозвращает Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.
%RANDOM%СистемнаяВозвращает произвольное десятичное число от 0 до 32767.
%SYSTEMDRIVE%СистемнаяВозвращает имя диска, содержащего корневой каталог Windows XP (т. е. системный каталог).
%SYSTEMROOT%СистемнаяВозвращает Возвращает размещение системного каталога Windows XP.
%TEMP% и %TMP%Системная и пользовательскаяВозвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.
%TIME%СистемнаяВозвращает текущее время. Использует тот же формат, что и команда time /t.
%USERDOMAIN%ЛокальнаяВозвращает имя домена, содержащего список учетных записей пользователей.
%USERNAME%ЛокальнаяВозвращает имя пользователя, выполнившего вход в систему.
%USERPROFILE%ЛокальнаяВозвращает размещение профиля для текущего пользователя.
%WINDIR%СистемнаяВозвращает размещение каталога операционной системы.

doctus-stilus.narod.ru