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

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

В этой пошаговой инструкции базовая информация о том, как открыть переменные среды Windows 11 и Windows 10, создать или отредактировать их.

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

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

Одна из наиболее часто используемых переменных среды — PATH, указывающая на папки, в которых выполняется поиск файлов, вызываемых в командной строке, терминале Windows, файле bat или из других источников. В качестве примера её назначения:

  • Если вы откроете командную строку (или диалоговое окно «Выполнить»), введёте regedit и нажмете Enter — вы сможете запустить редактор реестра, не указывая полный путь к файлу regedit.exe, поскольку путь C:\Windows добавлен в переменную среды Path.
  • Если же тем же образом в командной строке написать имя программы, путь к которой не добавлен в Path (chrome.exe, adb.exe, pip и другие), вы получите сообщение «Не является внутренней или внешней командой, исполняемой программой или пакетным файлом».

Если предположить, что вы часто используете команды adb.exe (например, для установки приложений Android в Windows 11), pip install (для установки пакетов Python) или любые другие то для того, чтобы не писать каждый раз полный путь к этим файлам, имеет смысл добавить эти пути в переменные среды.

Также вы можете добавлять и иные переменные среды (не обязательно содержащие пути), а в дальнейшем получать и использовать их значения в сценариях BAT (командной строки) или PowerShell. Пример получения и отображения значения системной переменной PATH для обоих случаев:

echo %PATH%
echo $Env:PATH

Получить список всех переменных среды в командной строке и PowerShell соответственно можно следующими командами:

set
ls env:

Редактирование переменных среды Windows 11/10

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

  1. Чтобы открыть переменные среды Windows вы можете использовать поиск в панели задач (начните вводить «Переменных» и откройте пункт «Изменение системных переменных среды») или нажать клавиши Win+R на клавиатуре, ввести sysdm.cpl и нажать Enter.
    Открыть изменение переменных среды в Windows

  2. На вкладке «Дополнительно» нажмите кнопку «Переменные среды…»
    Переменные среды в параметрах системы Windows

  3. В разделе «Переменные среды пользователя» (если требуется изменение только для текущего пользователя) или «Системные переменные» выберите переменную, которую нужно изменить и нажмите «Изменить» (обычно требуется именно это), либо, если необходимо создать новую переменную — нажмите кнопку «Создать». В моем примере — добавляем свои пути в системную переменную Path (выбираем эту переменную и нажимаем «Изменить»).
    Создание и изменение переменных среды Windows

  4. Для добавления нового значения (пути) в системную переменную в следующем окне можно нажать кнопку «Создать», либо просто дважды кликнуть по первой пустой строке, затем — ввести нужный путь к папке, содержащей нужные нам исполняемые файлы.
    Изменение переменно PATH

  5. Также вы можете использовать кнопку «Изменить текст», в этом случае окно изменения системной переменной откроется в ином виде: имя переменной, а ниже — её значение. В случае указания путей значение будет представлять собой все пути, хранящиеся в переменной, разделенные знаком «точка с запятой».
    Изменение имени и значения системной переменной среды

  6. При создании новой переменной среды окно будет тем же, что и в 5-м шаге: необходимо будет указать имя системной переменной в верхнем поле, а её значение — в нижнем.

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

Environment variables are not often seen directly when using Windows. However there are cases, especially when using the command line, that setting and updating environment variables is a necessity. In this series we talk about the various approaches we can take to set them. In this article we look at how to interface with environment variables using the Command Prompt and Windows PowerShell. We also note where in the registry the environment variables are set, if you needed to access them in such a fashion.

Print environment variables

You can use environment variables in the values of other environment variables. It is then helpful to be able to see what environment variables are set already. This is how you do it:

Command Prompt

List all environment variables

Command Prompt — C:\>

Output

1
2
3
4
5
6
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\user\AppData\Roaming
.
.
.
windir=C:\Windows

Print a particular environment variable:

Command Prompt — C:\>

Output

Windows PowerShell

List all environment variables

Windows PowerShell — PS C:\>

Output

1
2
3
4
5
6
7
8
Name                           Value
----                           -----
ALLUSERSPROFILE                C:\ProgramData
APPDATA                        C:\Users\user\AppData\Roaming
.
.
.
windir                         C:\Windows

Print a particular environment variable:

Windows PowerShell — PS C:\>

Output

Set Environment Variables

To set persistent environment variables at the command line, we will use setx.exe. It became part of Windows as of Vista/Windows Server 2008. Prior to that, it was part of the Windows Resource Kit. If you need the Windows Resource Kit, see Resources at the bottom of the page.

setx.exe does not set the environment variable in the current command prompt, but it will be available in subsequent command prompts.

User Variables

Command Prompt — C:\>

1
setx EC2_CERT "%USERPROFILE%\aws\cert.pem"

Open a new command prompt.

Command Prompt — C:\>

Output

1
C:\Users\user\aws\cert.pem

System Variables

To edit the system variables, you’ll need an administrative command prompt. See HowTo: Open an Administrator Command Prompt in Windows to see how.

Command Prompt — C:\>

1
setx EC2_HOME "%APPDATA%\aws\ec2-api-tools" /M

Warning This method is recommended for experienced users only.

The location of the user variables in the registry is: HKEY_CURRENT_USER\Environment. The location of the system variables in the registry is: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.

When setting environment variables through the registry, they will not recognized immediately. One option is to log out and back in again. However, we can avoid logging out if we send a WM_SETTINGCHANGE message, which is just another line when doing this programatically, however if doing this on the command line it is not as straightforward.

One way is to get this message issued is to open the environment variables in the GUI, like we do in HowTo: Set an Environment Variable in Windows — GUI; we do not need to change anything, just open the Environment Variables window where we can see the environment variables, then hit OK.

Another way to get the message issued is to use setx, this allows everything to be done on the command line, however requires setting at least one environment variable with setx.

Printing Environment Variables

With Windows XP, the reg tool allows for accessing the registry from the command line. We can use this to look at the environment variables. This will work the same way in the command prompt or in powershell. This technique will also show the unexpanded environment variables, unlike the approaches shown for the command prompt and for powershell.

First we’ll show the user variables:

Command Prompt — C:\>

1
reg query HKEY_CURRENT_USER\Environment

Output

1
2
3
HKEY_CURRENT_USER\Environment
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp

We can show a specific environment variable by adding /v then the name, in this case we’ll do TEMP:

Command Prompt — C:\>

1
reg query HKEY_CURRENT_USER\Environment /v TEMP

Output

1
2
HKEY_CURRENT_USER\Environment
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp

Now we’ll list the system environment variables:

Command Prompt — C:\>

1
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

Output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
    ComSpec    REG_EXPAND_SZ    %SystemRoot%\system32\cmd.exe
    FP_NO_HOST_CHECK    REG_SZ    NO
    NUMBER_OF_PROCESSORS    REG_SZ    8
    OS    REG_SZ    Windows_NT
    Path    REG_EXPAND_SZ    C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
    PATHEXT    REG_SZ    .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    PROCESSOR_ARCHITECTURE    REG_SZ    AMD64
    PROCESSOR_IDENTIFIER    REG_SZ    Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
    PROCESSOR_LEVEL    REG_SZ    6
    PROCESSOR_REVISION    REG_SZ    3c03
    PSModulePath    REG_EXPAND_SZ    %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\;C:\Program Files\Intel\
    TEMP    REG_EXPAND_SZ    %SystemRoot%\TEMP
    TMP    REG_EXPAND_SZ    %SystemRoot%\TEMP
    USERNAME    REG_SZ    SYSTEM
    windir    REG_EXPAND_SZ    %SystemRoot%

And same as with the user variables we can query a specific variable.

Command Prompt — C:\>

1
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH

Output

1
2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
    PATH    REG_EXPAND_SZ    C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

Unsetting a Variable

When setting environment variables on the command line, setx should be used because then the environment variables will be propagated appropriately. However one notable thing setx doesn’t do is unset environment variables. The reg tool can take care of that, however another setx command should be run afterwards to propagate the environment variables.

The layout for deleting a user variable is: reg delete HKEY_CURRENT_USER\Environment /v variable_name /f. If /f had been left off, we would have been prompted: Delete the registry value EXAMPLE (Yes/No)?. For this example we’ll delete the user variable USER_EXAMPLE:

Command Prompt — C:\>

1
reg delete HKEY_CURRENT_USER\Environment /v USER_EXAMPLE /f

Output

1
The operation completed successfully.

Deleting a system variable requires administrator privileges. See HowTo: Open an Administrator Command Prompt in Windows to see how to do this.

The layout for deleting a system variable is: reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v variable_name /f. For this example we’ll delete the system variable SYSTEM_EXAMPLE:

Command Prompt — C:\>

1
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v SYSTEM_EXAMPLE /f

If this was run as a normal user you’ll get:

Output

1
ERROR: Access is denied.

But run in an administrator shell will give us:

Output

1
The operation completed successfully.

Finally we’ll have to run a setx command to propagate the environment variables. If there were other variables to set, we could just do that now. However if we were just interested in unsetting variables, we will need to have one variable left behind. In this case we’ll set a user variable named throwaway with a value of trash

Command Prompt — C:\>

Output

1
SUCCESS: Specified value was saved.

Resources

  • Windows XP Service Pack 2 Support Tools
  • Windows Server 2003 Resource Kit Tools
  • Reg — Edit Registry | Windows CMD | SS64.com
  • Reg — Microsoft TechNet
  • Registry Value Types (Windows) — Microsoft Windows Dev Center
  • How to propagate environment variables to the system — Microsoft Support
  • WM_SETTINGCHANGE message (Windows) — Microsoft Windows Dev Center
  • Environment Variables (Windows) — Microsoft Windows Dev Center

Windows Server 2003 Resource Kit Tools will also work with Windows XP and Windows XP SP1; use Windows XP Service Pack 2 Support Tools with Windows XP SP2. Neither download is supported on 64-bit version.

Parts in this series

  • HowTo: Set an Environment Variable in Windows

  • HowTo: Set an Environment Variable in Windows — GUI

  • HowTo: Set an Environment Variable in Windows — Command Line and Registry

Environment variables is not a new term in context to Windows 10. People have known them for years, as they are available in Windows series since older days of Windows XP. But still the fact is that many newbies to Windows aren’t aware of them. In this article, we’ll let you know about these variables and show the way to edit or modify them.

Basically, environment variables are strings that contain information such as drive, path, or file name. They control the behavior of various programs. For example, %windir% is an environment variable which when run in Command Prompt, opens the Windows folder under system root drive such as C:\Windows. There are two kind of environment variables a Windows operating system have. The first category is of user environment variables, which the user(s) and/or administrator(s), both can modify anytime. Second class is of system environment variables, which only system admin(s) can modify.

Keep in mind that the user environment variables are different for each user of a particular computer. The variables include any that are set by the user, as well as any variables defined by programs, such as the path to the location of the program files. While for system environment variables, administrators can change or add environment variables that apply to the system, and thus to all system users. During installation, Windows Setup configures the default system variables, such as the path to the Windows files.

Page Contents

How To Change User And System Environment Variables In Windows 10

1. Open administrative or elevated Windows PowerShell. For this search in Windows by term windows powershell, pick Windows PowerShell from search results, right click on it and select Run as administrator.

Recommended : Use Windows PowerShell to find Windows Experience Index on Windows 10

2. Next, in the Windows PowerShell window, type following cmdlet and press Enter key:

Get-ChildItem Env:

How To Change System And User Environment Variables In Windows 10

This cmdlet output will show you the list all environment variables available on your system. You can also edit or modify the variables in Windows PowerShell itself, but this would be bit technical. So for the sake of readers, I’ll show you much familiar way to edit these variables.

Registry Disclaimer: The further steps will involve registry manipulation. Making mistakes while manipulating registry could affect your system adversely. So be careful while editing registry entries and create a System Restore point first.

3. Press + R and put regedit in Run dialog box to open Registry Editor (if you’re not familiar with Registry Editor, then click here). Click OK.

Windows 10 Registry Editor

4. In the left pane of Registry Editor, navigate to following registry key:

HKEY_CURRENT_USER\Environment

How To Change System And User Environment Variables In Windows 10

5. At this registry location as shown above, you can see there are two user environment variables by default. To add a new environment variable, right click on blank space in the right pane, select New -> Expandable String Value. Change the string name so created from New Value #1 to whatever you want to say the variable. Now, for existing variables, double click on the variable string to add or modify its Value data:

Put you desired Value data in Edit String window and click OK. In this way, you can add or modify user environment variables.

6. In order to modify system environment variables, navigate to following registry key and perform the registry manipulation as described in previous step:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

How To Change System And User Environment Variables In Windows 10

We’ve highlighted some important variables in the screenshot above. So in this way, you can add or modify system environment variables. You may need to restart your system, to make your changes effective.

List of environment variables in Windows 10

For your convenience, here is the complete list of environment variables in Windows 10.

ENVIRONMENT VARIABLES
VALUES (items in italic – variables)
%ALLUSERSPROFILE% C:\ProgramData
%APPDATA% C:\Users\(user-name)\AppData\Roaming
%CD% Current directory full path
%CMDCMDLINE% Returns exact command line used to start current cmd.exe session.
%CMDEXTVERSION% Number of current command processor extensions.
%CommonProgramFiles% C:\Program Files\Common Files
%CommonProgramFiles(x86)% C:\Program Files (x86)\Common Files
%CommonProgramW6432% C:\Program Files\Common Files
%COMPUTERNAME% Technoyl-PC
%COMSPEC% C:\Windows\System32\cmd.exe
%DATE% Current date in format determined by Date command
%ERRORLEVEL% Number defining exit status of previous command or program
%HOMEDRIVE% C:
%HOMEPATH% C:\Users\(user-name)
%LOCALAPPDATA% C:\Users\(user-name)\AppData\Local
%LOGONSERVER% \\MicrosoftAccount
%NUMBER_OF_PROCESSORS% 1
%OS% Windows_NT
%PATH% C:\WINDOWS

C:\WINDOWS\system32

C:\WINDOWS\System32\Wbem

C:\WINDOWS\System32\WindowsPowerShell\v1.0

%PATHEXT% COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
%PROCESSOR_ARCHITECTURE% x86
%PROCESSOR_IDENTIFIER% x86 Family 6 Model 69 Stepping 1, GenuineIntel
%PROCESSOR_LEVEL% 6
%PROCESSOR_REVISION% 4501
%ProgramData% C:\ProgramData
%ProgramFiles% C:\Program Files
%ProgramFiles(x86)% C:\Program Files (x86)
%ProgramW6432% C:\Program Files
%PROMPT% Code for current command prompt format. Code is usually $P$G
%PSModulePath% C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
%PUBLIC% C:\Users\Public
%RANDOM% To get random number between 0 and 32767
%SessionName% When logging on directly to machine, returns “Console”.

When client connects via terminal server session, is combination of

connection name, followed by pound symbol {#} and session number.

%SystemDrive% C:
%SystemRoot% C:\Windows
%TEMP% C:\Users\(user-name)\AppData\Local\Temp
%TIME% Current time in format determined by Time command
%TMP% C:\Users\(user-name)\AppData\Local\Temp
%USERDOMAIN% Technoyl-PC
%USERDOMAIN_ROAMINGPROFILE% Technoyl-PC
%USERNAME% (user-name)
%USERPROFILE% C:\Users\(user-name)
%WINDIR% C:\Windows

Hope you find the article useful! Also learn how to scan your Windows 10 using Windows PowerShell.

RELATED ARTICLES

Хотите быстро открывать любые нужные Вам папки, запускать Командную строку из любой директории или создавать автоматические сценарии для перемещения файлов? Тогда Вам просто необходимо знать, что такое переменные среды!

Сегодняшняя статья, думаю, будет интересна, в первую очередь, продвинутым пользователям Windows. Хотя, в принципе, знать о предмете разговора не помешает никому. Речь идёт о такой сущности операционной системы как переменные средЫ (ударение на последнем слоге).

Исполняемой средой в Windows является оболочка Командной строки (CMD.EXE). Соответственно переменные эти будут работать в первую очередь в консоли. Однако, поскольку Командная строка поддерживается на уровне системы всеми штатными средствами Windows, переменные окружения будут также отлично работать, например, в Проводнике, в Планировщике заданий или в любых BAT-файлах. Это даёт широкий простор для их применения в сфере автоматизации рутинных процессов при работе с файлами.

Общие данные о переменных окружения

Переменные среды чаще всего разделяют на системные и локальные. Системные могут, в свою очередь, быть встроенными в Windows изначально (имеют наивысший приоритет) или добавлены различными установленными программами. Такие переменные доступны из любой учётной записи и хранятся в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.

Локальные переменные среды тоже могут создаваться программно, однако, часто их создают сами пользователи вручную. Такие переменные доступны только в рамках активной в данный момент учётной записи пользователя, а в реестре хранятся в ветках HKEY_CURRENT_USER\Environment и HKEY_CURRENT_USER\Volatile Environment.

Физически переменная окружения являет собой строковый или мультистроковый параметр реестра. Имя его одновременно является именем переменной, а значение, соответственно, её содержимым. В качестве содержимого может выступать любая текстовая информация, команды, пути к папкам или даже ссылки на другие переменные. В последнем случае имя переменной, на которую ссылаются, обрамляется с двух сторон символами «%»:

Переменные среды в реестре

Кстати, вышеупомянутый способ обрамления имени переменной среды знаками процента используется для вызова её значения в окружении Windows. Например, если в Командной строке Вы хотите вывести текущую дату, Вы можете воспользоваться командой ECHO и переменной DATE в формате: «echo %date%» (без кавычек). Значения переменных можно произвольно комбинировать с любым текстом или значениями других переменных, при условии, что Вы их имена тоже заключите в конструкцию «%…%»:

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

Переменные среды Windows

Смотреть существующие переменные среды, как мы уже выяснили, можно в реестре. Однако, это не совсем удобно, поскольку они раскиданы по нескольким веткам. Гораздо проще ознакомиться с полным списком доступных переменных окружения через Командную строку. Для этого вызовите её (WIN+R – cmd – Enter) и введите команду SET без каких-либо дополнительных параметров:

Список переменных среды в Командной строке

Стоит сказать, что список здесь немного неполный, поскольку не содержит ряда встроенных системных переменных, вроде DATE, TIME, RANDOM и т.п. Начнём, пожалуй, с них.

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

Переменная Типичное значение Назначение
APPDATA C:\Documents and Settings\%UserName%\Application Data или C:\Users\%UserName%\AppData\Roaming (Windows 7 и выше) Хранит путь к папке с данными установленных программ.
CMDEXTVERSION число Выдаёт версию расширений обработчика команд (Command Processor Extensions).
COMMONPROGRAMFILES Обычно: %ProgramFiles%\Common Files Хранит путь к каталогу Common Files.
COMMONPROGRAMFILES(x86) Обычно: %ProgramFiles(x86)%\Common Files Хранит путь к 32-битной версии каталога Common Files в 64-битных системах.
COMPUTERNAME Текст Хранит имя Вашего компьютера, используемое для идентификации в сетях.
COMSPEC C:\Windows\system32\cmd.exe Содержит путь к файлу запуска Командной строки. При вводе переменной в адресной строке Проводника запускает консоль из текущей папки.
DATE Текущая дата Выдаёт полную текущую дату в формате, заданном в настройках Даты и времени.
ERRORLEVEL Число или 0 Хранит числовой код ошибки произошедшей в последней использованной команде. При отсутствии ошибок выдаёт 0.
HOMEDRIVE C:, D:, E: или иные буквы Выдаёт букву диска, на котором хранится профиль пользователя.
HOMEPATH Обычно: \Users\%USERNAME% Выдаёт путь до каталога с профилем пользователя.
HOMESHARE Путь, если есть Если задана, хранит путь до общей папки в каталоге с профилем пользователя.
LOCALAPPDATA Обычно: C:\Users\%UserName%\AppData\Local Хранит путь до папки с локальными данными установленных программ.
NUMBER_OF_PROCESSORS Число Отображает количество ядер процессора в системе.
OS Текст Отображает название архитектуры Вашей версии Windows (чаще всего Windows_NT для систем старше Windows 2000).
PATH Ряд путей Хранит (через точку с запятой) список путей к различным папкам с исполняемыми файлами системных и прочих приложений.
PATHEXT Расширения файлов (.COM; .EXE; .BAT и т.д.) Хранит (через точку с запятой) список расширений файлов, которые воспринимаются системой как исполняемые.
PROCESSOR_ARCHITECTURE Текст Выдаёт код архитектуры процессора, установленного в системе (например, AMD64).
PROCESSOR_IDENTIFIER Текст Выдаёт код архитектуры процессора, а также ряд дополнительных сведений о нём (модельный ряд, версия модели и т.п.).
PROCESSOR_LEVEL Число Выдаёт код уровня архитектуры процессора (модельный ряд).
PROCESSOR_REVISION Число Выдаёт номер ревизии процессора.
PROGRAMDATA Обычно: C:\ProgramData\ Хранит путь до каталога с данными установленных программ.
PROGRAMFILES Обычно: C:\Program Files\ Хранит путь до каталога установки программ по умолчанию.
PROGRAMFILES(x86) Обычно: C:\Program Files (x86)\ Хранит путь до каталога установки 32-битных программ в 64-битной Windows по умолчанию.
PUBLIC Обычно: C:\Users\Public\ Хранит путь до общего каталога системы (папка «Общие»).
RANDOM Число от 0 до 32767 Выдаёт случайное число от 0 до 32767.
SAFEBOOT_OPTION Текст Существует только в режиме Безопасной загрузки и хранит код текущего режима работы (например, в режиме загрузки «с поддержкой командной строки» – Minimal или «с поддержкой сетевых драйверов» – Network).
SYSTEMDRIVE C:, D:, E: или иные буквы Хранит букву диска, на котором установлена система (обычно совпадает с %HOMEDRIVE%).
TEMP и TMP Обычно: C:\Users\%USERNAME%\AppData\Local\Temp\ Хранит путь к временной папке пользователя. Переменная является одновременно и системной и пользовательской для обеспечения доступа к папкам из-под других учётных записей.
TIME Текущее время Выдаёт текущее время в формате: часы:минуты:секунды.миллисекунды.
WINDIR Обычно: C:\Windows\ Хранит путь до системного каталога Windows.

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

Если системные переменные окружения доступны всегда по всей системе, то локальные работают только в рамках конкретной учётной записи пользователя. Их количество может быть значительным, а состав отличаться даже для разных пользователей одного и того же ПК. Однако, есть ряд переменных, которые обычно присутствуют везде.

Переменная Типичное значение Назначение
ALLUSERSPROFILE Обычно: C:\All Users (до Windows XP) или C:\Program Data (Windows 7 и выше) Хранит путь к папке с данными установленных программ.
CD Путь Хранит путь к текущей активной директории, в которой исполняются команды.
CLIENTNAME Текст (если существует) Если задана, хранит имя компьютера, заданное в настройках текущего пользователя.
CMDCMDLINE Текст Выдаёт полную команду (с параметрами), которая была использована для последнего запуска Командной строки.
LOGONSERVER Текст Хранит имя контроллера домена текущего пользователя.
PROMPT Обычно: $P$G Выдаёт параметры командной строки для текущего интерпретатора.
SESSIONNAME Обычно: Console Выдаёт название типа текущей сессии Командной строки. При запуске с локального ПК имеет значение «Console». При удалённом вызове – «RDP-Tcp#<номер сеанса>».
USERDOMAIN Текст Хранит имя домена (компьютера), в котором работает пользователь.
USERNAME Текст Хранит имя учётной записи активного пользователя.
USERPROFILE Обычно: C:\Users\%USERNAME% Выдаёт путь до каталога с профилем пользователя.

Создание и правка переменных среды

Как видим, переменных окружения уже изначально существует довольно много. Однако, это не значит, что Вы будете их использовать все и должны помнить наизусть. Более того, на практике Вам может недоставать каких-нибудь значений и Вы, возможно, захотите создать собственные переменные окружения. Благо, что в Windows для этого есть, как минимум, три штатных способа!

Создание переменных среды в Редакторе реестра

Как мы уже говорили, переменные среды хранятся в реестре Windows. Соответственно, там же мы их можем создавать и править. Это не самый правильный способ, но, тем не менее, такая возможность есть.

Чтобы создать, к примеру, локальную переменную окружения откройте Редактор реестра (WIN+R – regedit – Enter) и в ветке HKEY_CURRENT_USER\Environment создайте новый параметр расширяемого строкового, строкового или мультистрокового типа с нужным именем и значением. К примеру, создадим переменную MYNAME со значением «Руслан»:

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

Чтобы переменная стала доступна в системе нужно либо перезагрузить Windows, либо только сам Проводник. Последнее можно довольно просто сделать при помощи Диспетчера задач (CTRL+SHIFT+ESC). Достаточно только найти процесс «Проводник» (или explorer.exe) и перезапустить его (либо, в более ранних версиях Windows, снять задачу и создать её заново):

Перезапуск Проводника

После перезапуска оболочки Windows добавленная переменная будет доступна во всех системных компонентах. Проверить же доступность можно, как всегда, в Командной строке через команду ECHO (echo %myname%).

Создание переменных среды в Командной строке

Если Вы уже привыкли к работе в консоли Windows, то создавать переменные среды Вы сможете и прямо в ней. Для создания и правки переменных в Командной строке используется уже знакомая нам команда SET. Только, если для вывода списка переменных мы использовали её без каких-либо параметров, то теперь нам потребуется дополнить команду именем переменной и её значением. Например, создать переменную MYSURNAME со значением «Тертышный» можно так: SET MYSURNAME=Тертышный:

Создание переменной окружения в консоли

Проверить доступность переменной можно не только уже знакомой командой ECHO но и при помощи всё той же SET с указанием имени переменной: SET MYSURNAME. Если же Вы к предыдущей команде припишите знак «=», то получившаяся функция удалит переменную окружения с указанным именем, например: SET MYSURNAME= (удалит переменную MYSURNAME).

При создании переменной окружения прямо в реестре она там отображалась, но для доступа к ней требовался перезапуск среды. При создании же в консоли перезапуск не нужен. Новая переменная становится доступной сразу после объявления. Правда, она нигде не сохраняется на постоянной основе и использовать её можно только в текущем сеансе Командной строки.

Чтобы сохранить такую переменную в реестр Вам потребуется выполнить манипуляции с командой REG. Например, для сохранения переменной в виде локальной команда будет следующей: REG ADD HKCU\Environment /v MYSURNAME /t REG_EXPAND_SZ /d Тертышный или REG ADD HKCU\Environment /v MYSURNAME /t REG_EXPAND_SZ /d %MYSURNAME%:

Запись переменной среды в реестр из консоли

Создание переменных среды через Свойства системы

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

Оснастка Переменные среды

В открывшемся окне можно управлять некоторыми уже существующими системными и локальными переменными окружения, а также создавать новые. В принципе, здесь ничего сложного нет – всё весьма наглядно. Для создания новой переменной достаточно заполнить всего два поля с её именем и значением. Как и в случае с добавлением переменной через реестр, здесь также требуется перезапуск среды для полноценной работы.

Примеры использования переменных среды

Наконец-то мы разобрались (надеюсь :)) с принципами создания и изменения переменных среды и сейчас рассмотрим несколько практических примеров их применения. Скажу сразу, что применений Вы можете придумать сами большое множество. А, если Вы понимаете синтаксис BAT-файлов, то возможности перед Вами откроются весьма обширные.

Одной из самых полезных системных переменных окружения, на мой взгляд, является %COMSPEC%. Если взглянуть на её значение, то мы увидим, что она запускает Командную строку. Однако, если Вы введёте данную переменную в адресной строке открытой в данный момент папки, то консоль автоматически откроется из этой директории. Такой «фокус» очень удобен, если Вы работаете с консольными приложениями и не хотите каждый раз вводить вручную адрес папки с исполняемыми файлами:

Системная переменная COMSPEC

Часто при работе с консолью требуется получить путь или имя рабочей папки. Чтобы не вводить его, опять же, вручную, намного удобнее воспользоваться системной переменной среды %CD%. Данная переменная, как мы знаем, хранит путь активной в данный момент директории.

Переменные, хранящие в своём значении пути, довольно удобно использовать для быстрого перехода к нужным папкам в том же Проводнике. Например, чтобы открыть директорию временных файлов пользователя достаточно ввести в адресную строку %TMP%, а для доступа к папке Windows%WINDIR% и нажать Enter. Здесь можете создать и свои переменные, например, %DWNLD% для открытия папки загрузок, %DSK% для Рабочего стола и т.п.

Рассмотрим популярную практическую задачу, использующую вышеупомянутый тип переменных – очистка каталога с временными файлами. Как мы знаем, часто различные программы не «убирают» за собой «мусор». В результате этого директория временных файлов медленно но верно увеличивается в объёме. Если Вам хочется автоматизировать её очистку, создайте BAT-файл следующего содержания:

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

Если же хотите чтобы всё прошло безупречно, лучше запускать очистку при старте Windows, закинув BAT-файл в папку «Автозагрузка» (путь обычно: %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup). Таким образом очистка будет происходить автоматом при каждом запуске системы и не будет стопориться активными процессами, поскольку они ещё не запущены.

В ряде случаев полезной бывает и переменная %RANDOM%. По умолчанию она генерирует случайное число от 0 до 32767. Однако, диапазон можно ограничить приписав после переменной конструкцию » %% число», где «число» – максимальная нужная величина диапазона. Например, получить число от 0 до 10 можно так: «ECHO %RANDOM% %% 11» (в диапазоне всего 11 чисел, включая 0). Немного «заморочившись» можно даже написать простенькую игру «Угадай число» в виде следующего BAT-файла:

@echo off

SET /a GUESS=%RANDOM% %% 101

:begin

SET try=

SET /p «try=Ваше число: «

if «%try%»==»» goto begin

if %try% LSS %GUESS% (echo Загаданное число больше.& goto begin)

if %try% GTR %GUESS% (echo Загаданное число меньше.& goto begin)

if %try%==%GUESS% echo Вы угадали!& pause

Вышеприведённый код реализует игру на угадывание числа от 0 до 100, которое получается как раз из системной переменной окружения %RANDOM%. Для нормального отображения кириллицы набор команд нужно сохранить в виде BAT-файла с кодировкой OEM 866 или DOS (в разных Блокнотах она обозначена по-разному). Быстро запустить его на выполнение можно из любой папки при помощи вышеупомянутого способа с использованием переменной %COMSPEC% и ввода имени BAT-файла:

Игра Угадай число в Командной строке

Выводы

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

Если же Ваш интерес будет большим, нежели просто попробовать, что это такое, то Вы можете пойти дальше и писать уже собственные пакетные файлы, автоматизирующие процессы удаления, перемещения и создания файлов с нужными Вам данными. И, пускай Командная строка не так функциональна как, скажем, консоль Linux bash, в умелых руках она может творить буквально чудеса! Не верите? Попробуйте сами!

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

If you want to see or check the names and values of Environment Variables in Windows 11 or Windows 10, here is how you can do that. There are mainly four ways to find almost everything about the Environment Variables in Windows 11/10, and this article explains all the possible methods.

What are Environment Variables in Windows 11/10

Environment Variables contain some information related to WindowsApps path, currently logged-in user’s information, Temporary folder’s path, running processes, etc. Although Windows 11/10 comes with a few of those, you can add or modify Environment Variables in Windows PC easily.

However, if you want to find those Environment Variables in Windows 11 or Windows 10, this guide will be handy for you. As said earlier, there are four ways – using the Windows Settings panel, using Command Prompt, using the Registry Editor, and using Windows PowerShell.

To see the names and values of Environment Variables in Windows 11/10, follow these methods:

  1. Using Windows Settings panel
  2. Using Command Prompt
  3. Using Registry Editor
  4. Using Windows PowerShell

To learn more about these steps, continue reading.

1] Using Windows Settings panel

How to see Names and Values of Environment Variables in Windows 11/10

It is the most common method to find the names and values of the Environment Variables in Windows 11/10 PC. Earlier, it was possible to do the same using Control Panel. However, if you are using Windows 11, there is no need to go through the Control Panel since it will eventually open the Windows Settings.

Follow these steps to find the Environment Variables:

  • Press Win+I to open Windows Settings.
  • Go to System > About.
  • Click on the Advanced system settings.
  • Click the Environment Variables button.
  • Find the Environment Variables.

Next, you need to click on each variable to find the details. It displays a detailed list in the System variables box.

2] Using Command Prompt

How to see Names and Values of Environment Variables in Windows 11/10

It is probably the easiest method to find almost everything about the Environment Variables on Windows 11/10 PC. For this purpose, we are going to use the Command Prompt instance in Windows Terminal. However, you can open the standalone Command Prompt window and enter the following command:

set

In case you do not know the process to open the Windows Terminal, you can press Win+X and select the Windows Terminal from the WinX menu.

3] Using Registry Editor

How to see Names and Values of Environment Variables in Windows 11/10

If you do not want to do much with the Environment Variables and want to check them only, you can use the Registry Editor. As these variables depend on the user profile, you need to open the HKEY_CURRENT_USER. To find the names and values of the Environment Variables using Registry Editor, do the following:

  • Press Win+R to open the Run prompt.
  • Type regedit and hit the Enter button.
  • Click on the Yes button in the UAC prompt.
  • Navigate to this path: HKEY_CURRENT_USER\Environment
  • Find the variables.

In case you want to modify the existing variables using Registry Editor, you need to double-click on each of them and change them according.

4] Using Windows PowerShell

How to see Names and Values of Environment Variables in Windows 11/10

Like, Command Prompt, you can use Windows PowerShell to find the same Environment Variables on your Windows 11 or Windows 10 computer. However, it displays all the Environment Variables of all the users, whereas other methods display only the current user’s variables. That being said, the list could be lengthy since it may contain some variables, such as ComSpec, LOCALAPPDATA, HOMEDRIVE, HOMEPATH, ALLUSERSPROFILE, etc.

If you are fine with the lengthy list, you can use Windows PowerShell and enter this command:

dir env:

Like the Command Prompt method, you can open the standalone Windows PowerShell or the PowerShell instance in the Windows Terminal.

How do I view Environment Variables in Windows 11?

To view the Environment Variables in Windows 11, you can use any of the aforementioned methods. If you do not want to modify existing variables, you can use the Command Prompt method. For that, you can open the Command Prompt or the Command Prompt instance in Windows Terminal and enter this command: set. Then, it displays almost everything about the current user’s Environment Variables on your screen. Similarly, you can use the Windows PowerShell method to get the same thing done. In that case, you have to use this command: dir env:

How do I get a list of Environment Variables?

To get a list of Environment Variables, you have four techniques in your hands. However, using the Windows Settings method is probably the most fruitful method since you can view, add, or modify any Environment Variable without any issue. However, if you want to get a list only, you can use any of the other three methods. To choose one, you can open the Windows Terminal and enter this command in the PowerShell instance: dir env:. If you want to use the Command Prompt instance, you need to execute this command: set.

That’s all! Hope this guide helped.

Read: How to add or edit a PATH Environment Variable in Windows.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 7 home basic with service pack 1
  • Share folder samba windows
  • Дублирование экрана windows 10 горячие клавиши
  • Сервер rpc недоступен windows 10 принтер
  • Lifecam vx 1000 драйвер windows 10 x64