Переменные среды Windows¶
Переменная окружения (переменная среды́, англ. environment variable) — текстовая переменная операционной системы, хранящая какую-либо информацию — например, данные о настройках системы или сведения о текущем пользователе.
Работа с переменными¶
В качестве примера можно привести переменную %APPDATA% , которая указывает путь до папки, в которой хранятся настройки некоторых программ текущего пользователя. Обычно это C:\Documents And Settings\Пользователь\Application Data , где Пользователь это изменяемое значение. Для каждой учетной записи используется своё имя пользователя.
Чтобы каждый раз не узнавать имя учетной записи текущего пользователя и не подставлять в путь к папке Application Data соответствующее значение и используется переменная окружения %APPDATA% .
Это позволяет, к примеру, быстро открывать папку Application Data , для этого в меню «Пуск →Найти» или в «Пуск →Выполнить» введите %APPDATA% и нажмите клавишу Enter .
Чтобы получить значение переменной окружения через командную строку, используется команда echo , например:
Введенная в командной строке, эта комбинация отобразит архитектуру процессора текущего компьютера. Возможен один из трёх вариантов: x86 , IA64 , AMD64 .
Список переменных¶
Далее приводится список основных переменных, более подробный список приведен в статье Переменная среды Windows.
Переменная | Описание |
---|---|
%APPDATA% | Возвращает используемое по умолчанию размещение данных приложений. В Windows XP это C:\Documents and Settings\%UserName%\Application Data . В Windows 7 — C:\Users\%UserName%\AppData\Roaming . |
%PROCESSOR_ARCHITECTURE% | Архитектура процессора. Возможные варианты: x86 , IA64 , AMD64 . |
%USERNAME% | Имя текущего пользователя. |
%CD% | Указывает путь к текущему каталогу. Идентична команде CD без аргументов. |
%USERPROFILE% | Путь к профилю текущего пользователя. |
%WINDIR% | Каталог, в котором установлена Windows. |
%LOGONSERVER% | Имя контроллера домена, использовавшегося для авторизации текущего пользователя. |
%HOMEPATH% | Возвращает полный путь к основному каталогу пользователя. Задаётся на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы». |
%DATE% | Возвращает текущую дату. Использует тот же формат, что и команда date /t . Создаётся командой Cmd.exe . |
%TIME% | Возвращает текущее время. Использует тот же формат, что и команда time /t . Создаётся командой Cmd.exe . |
%COMPUTERNAME% | Имя компьютера. |
%TEMP% и %TMP% | Возвращает временные каталоги, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP , другие — переменную TMP . Потенциально TEMP и TMP могут указывать на разные каталоги, но обычно совпадают. |
%ROGRAMFILES% | Путь к каталогу Program Files. |
%PROGRAMFILES(x86)% | Путь к каталогу Program Files (x86) в 64-разрядных системах для приложений архитектуры x86 . |
%PATH% | Указывает путь поиска исполняемых файлов. |
Изменение переменных¶
Чтобы изменить значение переменной, используется команда SET , например:
Какие переменные Windows существуют?
В современных ОС компании 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) | системная | Путь к каталогу Progra m Files (x86) в 64-разрядных системах для приложений архитектуры x86. |
PROMPT | локальная | Возвращает параметры командной строки для текущего интерпретатора. Создаётся командой Cmd.exe. |
PUBLIC | системная | В Windows 7 возвращает путь к каталогу C:\Users\Public. |
RANDOM | системная | Случайное десятичное число от 0 до 32767. Генерируется Cmd.exe. |
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. |
Вы можете задать вопрос по статье специалисту.
Переменные среды в CMD, BAT-файле
Бывает так, что написанный Вами BAT-файл работает на одном компьютере, но не работает на другом. Ошибка часто заключается в том, что были использованы прямые пути к файлам. Например батник для копирования всех текстовых файлов находящихся в папке windows на диске C
Такой батник будет работать на любом компьютере, только если операционная система установлена на диск С, если ОС расположена на другом диске D,F,K,J и т.д., необходимо использовать переменную %WINDIR%
Такой батник будет работать на любом компьютере — без разницы на какой диск установлена ОС
Переменные среды — текстовые переменные операционной системы, хранящие данные о ряде настроек системы. Используются переменные среды при копировании, перемещении, переименовании, удалении, создании файлов и папок других действий в командной строке.
Список переменных среды ОС Windows Вы можете посмотреть введя в командной строке: set и нажав клавишу Enter Также можно вывести список переменных в текстовый файл с помощью батника
Bat-файл с таким кодом создаст текстовый файл docent.txt(здесь и далее имена подставляйте свои)и выведет список переменных среды ОС Windows в этот текстовый документ в том-же месте где и располагается запущенный батник.
Список переменных сред
%ALLUSERSPROFILE% размещение профиля «All Users»
%APPDATA% используемое по умолчанию размещение данных приложений
%CD% путь к текущей папке
%CMDCMDLINE% строка команд, с помощью которой был запущен данный экземпляр Cmd.exe
%CMDEXTVERSION% номер версии текущих расширений обработчика команд
%COMPUTERNAME% имя компьютера
%COMSPEC% путь к исполняемой командной оболочке
%DATE% текущие данные, использует тот же формат, что и команда date /t
%ERRORLEVEL% код ошибки последней использовавшейся команды
%HOMEDRIVE% имя диска локальной рабочей станции
%HOMEPATH% полный путь к основному каталогу пользователя
%HOMESHARE% сетевой путь к общему основному каталогу пользователя
%LOGONSEVER% имя контроллера домена, который проверял подлинность текущей сессии
%NUMBER_OF_PROCESSORS% количество процессоров, установленных на компьютере
%OS% имя операционной системы
%PATHEXT% список расширений файлов
%PROCESSOR_ARCHITECTURE% архитектура процессора. Значения: x86, IA64
%PROCESSOR_IDENTFIER% описание процессора
%PROCESSOR_LEVEL% номер модели процессора, установленного на компьютере
%PROCESSOR_REVISION% номер модификации процессора
%ProgramFiles% путь к Program Files
%PROMPT% параметры командной строки для текущего интерпретатора
%RANDOM% произвольное десятичное число от 0 до 32767
%SYSTEMDRIVE% имя диска, содержащего корневой каталог
%SYSTEMROOT% размещение системного каталога Windows
%TIME% текущее время
%USERDOMAIN% имя домена, содержащего список учетных записей пользователей
%USERNAME% имя пользователя, выполнившего вход в систему
%USERPROFILE% размещение профиля для текущего пользователя
%WINDIR% размещение каталога операционной системы
Если Вы хотите посмотреть чему равна переменная среды на Вашем компьютере в командной строке(окно CMD), не забывайте прописывать впереди переменной «echo»
echo — команда предназначенная для отображения строки текста
Например если Вы захотите узнать текущее время %TIME% и просто напишите %TIME% в CMD — то получите ошибку: «Синтаксическая ошибка в имени файла, имени папки или метке тома»
Если напишете echo %TIME% — то узнаете точное время
Батником вывести информацию в txt можно так
echo сегодня %DATE% время %TIME% >> docent.txt
echo имя компьютера %COMPUTERNAME% >> docent.txt
echo имя юзера %USERNAME% >> docent.txt
echo где Винда %WINDIR% >> docent.txt
echo и т.д. и т.п >> docent.txt
Использование переменной при удалении файлов и папок с помощью Bat файла
Удаление папки Docent которая находится на диске С в WINDOWS
RD С:\WINDOWS\Docent /S/Q
То-же самое, но удаляем папку с помощью переменной %WINDIR%
RD %WINDIR%\Docent /S/Q
Использование переменной при перемещении файлов
Перемещение текстового файла docent.txt из папки WINDOWS на диске С в папку Program Files которая тоже на диске С
MOVE «C:\WINDOWS\docent.txt» «C:\Program Files»
То-же самое, но перемещаем с помощью переменных %WINDIR% и %ProgramFiles%
MOVE «%WINDIR%\docent.txt» «%ProgramFiles%»
скопировано с: http://docent777.ru/publ/ot_docenta/pro_batniki/peremennye_sredy_v_cmd_bat_fajle/1-1-0-29
источник: www.docent777.ru
Попробуйте наши услуги обслуживания и получите третий месяц обслуживания в подарок!