- Команда SET — работа с переменными среды Windows
- Энциклопедия Windows
- Преобразование переменной %SystemRoot% в командной строке
- Переменные среды в Windows: использование, список и таблицы
- Пример использования переменной среды Windows
- Как посмотреть переменные среды Windows 10
- Доступ к переменным средам из реестра Windows
- Как посмотреть все переменные среды в командной строке
- Открытие списка переменных среды в Windows PowerShell
- Создание переменной среды в Windows
- Список переменных среды Windows в таблице
- Выводы статьи
Команда SET — работа с переменными среды Windows
    Команда SET используется для просмотра и изменения переменных среды окружения в командной строке Windows. Переменные окружения — это переменные, принимаемые значения которых характеризуют среду, в которой выполняется текущая программа — пути системных файлов, сведения об аппаратных средствах, каталоги пользователя и т.п. Значения переменных среды формируются в процессе загрузки Windows, регистрации пользователя в системе, при выполнении отдельных процессов или с помощью команды SET . Для просмотра значения, принимаемого конкретной переменной можно воспользоваться командой :
SET переменная
SET PATH — отобразить значение переменной PATH
Для создания новой переменной, или изменения значения существующей, используется команда :
переменная — Имя переменной среды.
строка — Строка символов, присваиваемая указанной переменной.
SET MyName=Vasya — установить значение переменной MyName
SET path=C:\progs;%path% — изменить значение переменной PATH , добавив в начало строки C:\progs
Значение, принимаемое переменной , доступно для обработки в командных файлах, при использовании ее имени, заключенного в знаки процента — % . Например команда выдачи текста на дисплей ECHO в виде:
ECHO date — выведет на экран слово «date», а команда
ECHO %date% выведет на экран значение переменной date , т.е. текущую дату в формате операционной системы.
Команда SET без параметров используется для вывода текущих значений переменных среды.
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Usr\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=TEST7
ComSpec=C:\windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Usr
LOCALAPPDATA=C:\Users\Usr\AppData\Local
LOGONSERVER=\\TEST7
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\windows\system32;C:\windows;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS; .VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 3 Stepping 4, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0304
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\windows\system32\Windows PowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SystemDrive=C:
SystemRoot=C:\windows
TEMP=C:\Users\Usr\AppData \Local\Temp
TMP=C:\Users\Usr\AppData \Local\Temp
USERDOMAIN=test7
USERNAME=Usr
USERPROFILE=C:\Users\Usr
windir=C:\windows
Кроме переменных, отображаемых в списке, при вызове команды SET, существуют и другие, значения которых изменяется динамически:
%CD% — принимает значение текущего каталога.
%DATE% — принимает значение текущей даты.
%TIME% — принимает значение текущего времени.
%RANDOM% — значение случайного числа в диапазоне между 0 и 32767.
%ERRORLEVEL% — текущее значение ERRORLEVEL, специальной переменной, которая используется в качестве признака результата выполнения программы.
%CMDEXTVERSION% значение версии расширенной обработки команд CMD.EXE.
%CMDCMDLINE% — раскрывается в исходную командную строку, которая вызвала командный процессор .
Если при вызове команды SET указать только часть имени, то будет выведен список переменных, имена которых начинаются с указанной строки. Например:
SET U — выведет значения всех переменных, имена которых начинаются с ‘U’.
Команда SET поддерживает два дополнительных ключа:
SET /A выражение
SET /P variable=[promptString]
Ключ /A указывает, что строка справа от знака равенства является числовым выражением, значение которого вычисляется. Обработчик выражений очень прост и поддерживает следующие операции, перечисленные в порядке убывания приоритета:
() * / % + — > & ^ | = , | — группировка — арифметические операторы — арифметические операторы — двоичный сдвиг — двоичное И — двоичное исключающее ИЛИ — двоичное ИЛИ — присвоение — разделитель операторов |
При использовании любых логических или двоичных операторов необходимо заключить строку выражения в кавычки. Любые нечисловые строки в выражении рассматриваются как имена переменных среды, значения которых преобразуются в числовой вид перед использованием. Если переменная с указанным именем не определена в системе, вместо нее подставляется нулевое значение. Это позволяет выполнять арифметические операции со значениями переменных среды, причем не нужно вводить знаки % для получения значений. Если команда SET /A вызывается из командной строки, а не из пакетного файла, она выводит окончательное значение выражения. Слева от любого оператора присваивания должно стоять имя переменной среды. Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс:
0x — для шестнадцатеричных чисел
0 — для восьмеричных чисел.
Пример использования префиксов:
SET /A REZ=0xA+012
ECHO %REZ%
В данном командном файле значение переменной REZ вычисляется сложением числа 10, представленного в шестнадцатеричном виде ( 0xA ) и числа 10 , представленного в восьмеричном ( 012 ).
Ключ /P позволяет установить значение переменной для входной строки, введенной пользователем. Показывает указанное приглашение promptString перед чтением введенной строки. Приглашение promptString может быть пустым. Данный ключ позволяет организовать диалог с пользователем в командном файле:
@ECHO OFF
SET /P NAME=Введите имя пользователя:
SET /P pass=Введите пароль:
ECHO Имя пользователя — %NAME% , Пароль — %PASS%
В командных файлах довольно часто требуется работать с частью значения, принимаемого переменной, для чего используются подстановочные значения:
переменная:строка1=строка2 — заменяет в принимаемом значении переменной строку1 на строку2
Следующий командный файл использует замену символа «точка» на символ «тире» в значении переменной, соответствующем текущей дате:
@ECHO OFF
set tm=%DATE%
ECHO Дата1 = %tm%
SET tm=%DATE:.=-%
ECHO Дата2 = %tm%
Для выделения части значения, принимаемого переменной, используется следующая конструкция:
x,y — где x — число пропускаемых символов от начала строки, а y — количество символов, используемых в качестве значения переменной.
Следующий пример использует отображение текущего времени без секунд и долей секунд (только первые 5 символов из стандартного значения переменной TIME):
@ECHO OFF
set tm=%TIME%
ECHO Время1 = %tm%
SET tm=%TIME:
0,5%
ECHO Время2 = %tm%
Если значение y ( длина ) не указана, то используется оставшееся до конца строки значение переменной. Если значение y отрицательно, то используется часть строки значения переменной от конца. Предыдущий пример можно изменить , указав, что в принимаемом значении времени отбрасываются 6 символов от конца:
@ECHO OFF
set tm=%TIME%
ECHO Время1 = %tm%
SET tm=%TIME:
Возможно использование число пропусков не задано, и используется отрицательное число, то принимаемое значение будет частью переменной от конца строки:
-10% — извлечет последние 10 символов переменной PATH
. Нулевое значение можно не указывать, сохраняя формат подстановки:
0,-2% эквивалентно %PATH:
При использовании переменных окружения в командных файлах существует определенное ограничение, связанное с тем фактом, что присваиваемое значение остается без изменения при его модификации внутри группы команд, задаваемой скобками, например в командах IF или FOR . Для обхода данного ограничения используется запуск командного процессора с параметром /V:ON и вместо знаков процента, для получения принимаемого переменной значения, используются восклицательные знаки. Кроме того, существует возможность использовать стандартный запуск командного процессора, но с локальным включением данного режима командой :
Разница в результатах использования значений переменных довольно наглядно демонстрируется следующим командным файлом:
Setlocal EnableDelayedExpansion
@ECHO OFF
set VAR=before
if «%VAR%» == «before» (
set VAR=after
if «!VAR!» == «after» @echo Со знаком процента=%VAR% , Со знаком вопроса=!VAR!
)
Команда set VAR=after выполняется внутри подпрограммы, ограниченной скобками и, если убрать команду Setlocal EnableDelayedExpansion или не использовать для получения значения переменной VAR восклицательные знаки, ее значение останется старым ( тем, что было установлено до входа в подпрограмму ). Аналогичная же проблема наблюдается и тогда, когда значение переменной изменяется внутри цикла команды FOR . Например, для получения списка файлов текущего каталога такой командный файл не будет работать:
set LIST=
for %%i in (*) do set LIST=%LIST% %%i
echo %LIST%
Значение переменной LIST внутри цикла изменено не будет. Для того, чтобы это произошло, командный файл нужно изменить следующим образом:
Setlocal EnableDelayedExpansion
set LIST=
for %%i in (*) do set LIST=!LIST! %%i
echo %LIST%
Теперь, значение переменной LIST внутри цикла FOR будет изменяться, последовательно принимая значения имен файлов, разделенных пробелом ( set LIST=!LIST! %%i )
Энциклопедия Windows
Все об использовании и настройке Windows
- Windata
- »
- Windows XP
- »
- FAQ [XP]
- » Преобразование переменной %SystemRoot% в командной строке
Преобразование переменной %SystemRoot% в командной строке
Если при вводе параметров SET или PATH в приглашении командной строки переменная %SystemRoot% не преобразовывается в путь к корневому каталогу, выполните следующие действия.
1. Запустите редактор системного реестра (REGEDT32.EXE).
2. Перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.
3. Обратите внимание на запись PATH в правой панели и проверьте ее тип (вторая часть записи). Например:
Path: REG_EXPAND_SZ: %SystemRoot%
Если в качестве типа указано не REG_EXPAND_SZ, то выполните следующие инструкции. В противном случае, закройте редактор системного реестра.
4. Дважды щелкните на записи Path и выделите ее содержимое. Нажмите комбинацию клавиш для копирования содержимого записи в буфер обмена.
5. Не снимая выделение с записи Path, выберите команду Удалить (Delete) в меню Правка (Edit) (или нажмите клавишу ). Подтвердите удаление.
6. Убедитесь в том, что в левой панели выделен раздел Environment
и выберите команду Добавить параметр (Add Value) в меню Правка (Edit).
7. Введите имя записи Path (обратите внимание на заглавную букву “P”) и введите значение REG_EXPAND_SZ. Щелкните на кнопке OK.
8. Дважды щелкните на записи Path и нажмите комбинацию клавиш для вставки информации из буфера обмена. Щелкните на кнопке OK.
9. Закройте редактор системного реестра.
Кроме того, можно проверить раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot и удостоверится, что значение REG_SZ содержит правильный путь (например, d:\windows).
Переменные среды в Windows: использование, список и таблицы
Переменная среды (environment variable) — текстовая короткая ссылка на элемент операционной системы Windows, предназначенная для получения быстрого доступа к объекту системы, или к данным о каталогах и конфигурации компьютера. Переменная среды (переменная окружения) позволяет быстро перейти к нужному месту на компьютере, без использования имени пользователя или полного пути к объекту.
Переменные окружения Windows используются в командной строке, в диалоговом окне «Выполнить» и адресной строке Проводника. Переменная среды может содержать информацию о настройках системы или данные о текущем пользователе компьютера.
Переменные среды Windows делятся на два вида:
- Пользовательские переменные среды — содержат указания пути к пользовательским каталогам.
- Системные переменные среды — содержат информацию о каталогах ОС и конфигурации ПК.
Чаще всего переменные среды используются как путь к дискам, файлам или параметрам системы. Использование переменной среды позволяет быстро перейти к нужной директории операционной системы, без ввода полного пути, например, без ввода имени пользователя.
Переменные окружения часто используются при написании скриптов, или при работе в командной строке. Короткие переменные можно использовать вместо полного пути до файла или папки, например, при создании ярлыков, при вводе пути к объекту.
Пример использования переменной среды Windows
Рассмотрим следующий пример: пользователю нужно открыть системную папку «AppData», в которой находятся различные данные программ, установленных в операционную систему Windows. Скрытая папка «AppData» находится в профиле пользователя, обычно на диске «C:». Данные приложений расположены по пути:
Чтобы получить доступ к этой папке нужно выполнить несколько последовательных действий: открыть Проводник, включить в Windows отображение скрытых папок и файлов, а затем пройти по всему пути до нужной папки.
При помощи переменной «%APPDATA%» (переменная используется без кавычек) можно сразу открыть нужную директорию в системе, без ввода имени пользователя, включения отображения скрытых папок, ввода полного пути. Это экономит много времени.
Чтобы открыть нужный каталог достаточно лишь ввести «%APPDATA%» в поле поиска Windows, в адресную строку Проводника или в диалоговое окно «Выполнить», а затем нажать на клавишу «Enter».
Переменные среды Виндовс заключены в специальный оператор «%», который находится с двух сторон названия переменной. Это необходимо, чтобы система могла обработать запрос.
Пользователь может самостоятельно создавать переменные среды или изменять существующие. В статье мы рассмотрим несколько способов просмотра переменных среды и самостоятельное создание переменной. В руководстве вы найдете таблицу со списком переменных, применяемых в операционных системах Windows 10, Windows 8.1, Windows 8, Windows 7.
Как посмотреть переменные среды Windows 10
Сейчас мы посмотрим, как получить доступ к переменным средам в операционной системе Windows 10. В других версиях Windows необходимо выполнить аналогичные действия.
Чтобы посмотреть переменные окружения Windows 10, выполните следующее:
- Нажмите на клавиши» «Win» + «R».
- В окне «Выполнить» введите команду: «systempropertiesadvanced» (без кавычек), а затем нажмите на кнопку «ОК».
- В окне «Свойства системы», во вкладке «Дополнительно» нажмите на кнопку «Переменные среды…».
- В окне «Переменные среды» отображаются пользовательские переменные среды и системные переменные среды.
Доступ к переменным средам из реестра Windows
Есть возможность получить доступ к переменным средам из системного реестра Windows. Пользователю нужно будет открыть редактор реестра, а затем пройти по пути до определенной ветки.
Системные переменные среды находятся по следующему пути:
Переменные среды локального пользователя расположены в следующей ветке реестра:
Вы можете создать в редакторе реестра новые переменные или изменить существующие.
Как посмотреть все переменные среды в командной строке
Пользователь может получить список переменных среды при помощи системного инструмента — командной строки Windows.
В cmd переменные среды открываются следующим образом:
- Запустите командную строку от имени администратора.
- Выполните команду:
Для получения списка переменных в виде текстового файла, выполните в командной строке команду:
После выполнения этой команды, на Локальном диске «C:» появится текстовый файл с именем «Variables» (имя можно использовать любое), в котором находится список переменных среды Windows.
На моем компьютере файл имеет следующее содержание:
Открытие списка переменных среды в Windows PowerShell
Открытие списка переменных среды возможно при помощи системного средства Windows PowerShell.
Выполните следующие действия:
- Запустите Windows PowerShell от имени администратора.
- Введите команду, а затем нажмите на клавишу «Enter»:
- В окне PowerShell откроется список переменных среды Windows.
Создание переменной среды в Windows
Пользователь может самостоятельно создать новую переменную для открытия директорий на компьютере, или для запуска программ.
- В окне «Переменные среды» выберите одну из групп переменных: пользовательские или системные переменные.
- Нажмите на кнопку «Создать…».
На этом примере я создам отдельную переменную среды для запуска программы TeamViewer.
- В окне «Изменение пользовательской переменной» добавьте имя переменной, а в поле «Значение переменной:» введите полный путь к исполняемому файлу.
- В окне переменных сред добавилась новая переменная. Нажмите на кнопку «ОК» для применения изменений.
- В диалоговом окне «Выполнить» введите «%Имя_переменной%», в нашем случае, «%TeamViewer%», нажмите на кнопку «ОК».
- На Рабочем столе компьютера откроется окно запущенной программы.
Подобным способом, после ввода переменной в адресную строку Проводника, выполняется запуск программы или открытие директории на ПК.
Переменная среды пути «Path» содержит список директорий на компьютере, в которых система должна искать исполняемые файлы. Переменная среды пути «PATH» не добавляется к исполняемым файлам, а только к директориям, где находятся данные файлы.
Если добавить в переменную среды Path Windows путь к директории с исполняемым файлом, например, для браузера Google Chrome: C:Program Files (x86)GoogleChromeApplication , то программа запустится из командной строки, после выполнения команды «chrome», без ввода полного пути к исполняемому файлу.
При необходимости, пользователь может удалить ненужную переменную из операционной системы Windows.
Список переменных среды Windows в таблице
Для удобства посетителей сайта я собрал в общую таблицу переменные, их описание и значения в операционной системе Windows. В подавляющем большинстве случаев, системная папка расположена на диске «C:», поэтому пути в значениях даны для этого диска.
Переменная | Назначение | Значение переменной |
---|---|---|
%ALLUSERSPROFILE% | Папка ProgramData | C:\ProgramData |
%APPDATA% | Папка размещения данных программ | C:\Users\User\AppData\Roaming |
%CommonProgramFiles% | Папка Common Files в Program Files | C:\Program FilesCommon Files |
%CommonProgramW6432% | Папка Common Files в Program Files | C:\Program Files\Common Files |
%COMPUTERNAME% | Имя компьютера | DESKTOP-XXXXXXX |
%ComSpec% | Запуск командной строки | C:\WINDOWS\system32\cmd.exe |
%DriverData% | Папка DriverData | C:\Windows\System32\Drivers\DriverData |
%HOMEDRIVE% | Системный диск | C: |
%HOMEPATH% | Папка профиля пользователя | C:\Users\User |
%LOCALAPPDATA% | Папка локальных данных приложений | C:\Users\User\AppData\Local |
%LOGONSERVER% | Имя контроллера домена | \DESKTOP-XXXXXXX |
%NUMBER_OF_PROCESSORS% | Количество потоков процессора | |
%OneDrive% | Папка OneDrive | C:\Users\User\OneDrive |
%Path% | Путь поиска исполняемых файлов | C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;… |
%PATHEXT% | Исполняемые расширения файлов | .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC |
%PROCESSOR_ARCHITECTURE% | Архитектура процессора | AMD64; x86; IA64 |
%PROCESSOR_IDENTIFIER% | Описание процессора | |
%PROCESSOR_LEVEL% | Номер модели процессора | |
%PROCESSOR_REVISION% | Ревизия процессора | |
%ProgramData% | Папка ProgramData | C:\ProgramData |
%ProgramFiles% | Папка ProgramFiles | C:\Program Files |
%ProgramFiles(x86)% | Папка ProgramFiles(x86) | C:\Program Files (x86) |
%ProgramW6432% | Папка ProgramFiles | C:\Program Files |
%PROMPT% | Возвращение параметров командной строки | |
%PSModulePath% | Пути к расположению модулей PowerShell | C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules |
%PUBLIC% | Папка «Общие» в профиле пользователей | C:\Users\Public |
%SystemDrive% | Системный диск с Windows | C: |
%SystemRoot% | Папка Windows | C:\Windows |
%TEMP% | Временный каталог | C:\Users\User\AppData\Local\Temp |
%TMP% | Временный каталог | C:\Users\User\AppData\Local\Temp |
%USERDOMAIN% | Имя домена | DESKTOP-XXXXXXX |
%USERNAME% | Имя пользователя | User |
%USERPROFILE% | Профиль пользователя | C:\Users\User |
%Windir% | Папка Windows | C:\Windows |
Выводы статьи
Переменные окружения Windows позволяют пользователю экономить время во время работы на компьютере. Переменными средами Windows могут пользоваться обычные пользователи или системные администраторы для быстрого доступа к объектам операционной системы, чтобы открыть нужную директорию на компьютере, или запустить программу.