This has been covered quite a bit, but there’s a crucial piece of information that’s missing. Hopefully, I can help to clear up how this works and give some relief to weary travellers.
Delete From Current Process
Obviously, everyone knows that you just do this to delete an environment variable from your current process:
set FOO=
Persistent Delete
There are two sets of environment variables, system-wide and user.
Delete User Environment Variable:
reg delete "HKCUEnvironment" /v FOO /f
Delete System-Wide Environment Variable:
REG delete "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /F /V FOO
Apply Value Without Rebooting
Here’s the magic information that’s missing! You’re wondering why after you do this, when you launch a new command window, the environment variable is still there. The reason is because explorer.exe has not updated its environment. When one process launches another, the new process inherits the environment from the process that launched it.
There are two ways to fix this without rebooting. The most brute-force way is to kill your explorer.exe process and start it again. You can do that from Task Manager. I don’t recommend this method, however.
The other way is by telling explorer.exe that the environment has changed and that it should reread it. This is done by broadcasting a Windows message (WM_SETTINGCHANGE). This can be accomplished with a simple PowerShell script. You could easily write one to do this, but I found one in Update Window Settings After Scripted Changes:
if (-not ("win32.nativemethods" -as [type])) {
add-type -Namespace Win32 -Name NativeMethods -MemberDefinition @"
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr SendMessageTimeout(
IntPtr hWnd, uint Msg, UIntPtr wParam, string lParam,
uint fuFlags, uint uTimeout, out UIntPtr lpdwResult);
"@
}
$HWND_BROADCAST = [intptr]0xffff;
$WM_SETTINGCHANGE = 0x1a;
$result = [uintptr]::zero
[win32.nativemethods]::SendMessageTimeout($HWND_BROADCAST, $WM_SETTINGCHANGE,[uintptr]::Zero, "Environment", 2, 5000, [ref]$result);
Summary
So to delete a user environment variable named «FOO» and have the change reflected in processes you launch afterwards, do the following.
- Save the PowerShell script to a file (we’ll call it updateenv.ps1).
- Do this from the command line: reg delete «HKCUEnvironment» /v FOO /f
- Run updateenv.ps1.
- Close and reopen your command prompt, and you’ll see that the environment variable is no longer defined.
Note, you’ll probably have to update your PowerShell settings to allow you to run this script, but I’ll leave that as a Google-fu exercise for you.
Программистам, системным администраторам и опытным пользователям может потребоваться в какой-то момент поработать с переменными среды. Некоторые могут захотеть удалить переменную среды; другие захотят изменить его значение и так далее. В этом руководстве рассказывается, как редактировать или удалять переменные среды, а также как отключить переменные среды в Windows:
Откройте окно переменных среды
Чтобы внести многие изменения, показанные в этой статье, вам сначала нужно открыть окно переменных среды. В этом руководстве объясняется, как это сделать, и показаны основы работы с переменными среды.
Если вы хотите пропустить его чтение, один путь, который работает одинаково во всех версиях Windows, — это открыть окно «Выполнить» (Win + R), командную строку или PowerShell и выполнить команду: rundll32.exe sysdm.cpl,EditEnvironmentVariables
.
Если вы хотите изменить значение существующей переменной среды, сначала выберите ее в окне «Переменные среды». Затем щелкните или коснитесь «Изменить».
Вам будет показано окно, в котором вы можете редактировать как имя, так и значение переменной. Внесите желаемые изменения и нажмите ОК . Затем еще раз нажмите OK в окне переменных среды .
Как редактировать переменную среды из командной строки
Вы также можете создать новую переменную среды или изменить значение существующей переменной среды (но не ее имя) из командной строки . Вам нужно ввести следующую команду:
setx variable_name "value"
, если вы хотите создать переменную среды пользователяsetx variable_name "value" /m
, если вы собираетесь создать системную переменную среды
Например, мы набрали setx TEST "C:digitalcitizen"
и создали пользовательскую переменную TEST со значением C:digitalcitizen.
Если мы хотим изменить значение переменной среды, мы можем запустить ту же команду setx, но указать новое значение для переменной. Например, выполнение setx TEST "C:DC"
изменяет значение переменной среды TEST на C:DC.
Это работает, потому что команда setx перезаписывает существующее значение последним введенным вами. Следовательно, если вы используете эту команду несколько раз для одной и той же переменной, переменная сохранит последнее введенное вами значение.
Если вы хотите, чтобы переменная имела несколько путей в своем значении, вы должны записать их все, разделяя их точкой с запятой, без пробелов, как на скриншоте ниже.
ПРИМЕЧАНИЕ. Вы можете получить список всех доступных переменных среды, выполнив команду set в командной строке (не setx и без каких-либо параметров). Однако, если вы только что создали или отредактировали переменную среды, необходимо закрыть и снова открыть командную строку, чтобы изменения отобразились.
Как редактировать переменную среды из PowerShell
Вы также можете создать или изменить значение существующей переменной среды из PowerShell . Команда PowerShell для этого:
[Environment]::SetEnvironmentVariable("variable_name","variable_value","User")
, если вы хотите создать переменную среды пользователя.[Environment]::SetEnvironmentVariable(“variable_name”,”variable_value”,”Machine”)
, если вы хотите создать системную переменную среды.
Например, мы набрали [Environment]::SetEnvironmentVariable(“TEST”,”digitalcitizen.life”,”User”)
, чтобы создать переменную пользовательской среды под названием TEST со значением digitalcitizen.life. Чтобы изменить значение переменной позже, мы можем запустить ту же команду с другим значением. Как и setx в командной строке, эта команда переписывает значение указанной переменной каждый раз, когда вы ее запускаете.
Если вы хотите присвоить переменной несколько значений, введите их все в команду, разделяя их точками с запятой, как показано ниже.
ПРИМЕЧАНИЕ. В PowerShell вы можете получить список всех переменных среды, выполнив команду Get-ChildItem Env:
. Однако, если вы только что создали или отредактировали переменную среды, вам необходимо закрыть и снова открыть PowerShell, чтобы изменения отобразились.
Как очистить значение переменной среды в Windows (из командной строки)
Если вы хотите удалить значение переменной среды (сохранив ее имя), вы не можете сделать это с помощью мыши и клавиатуры из окна переменных среды . Если вы выберете переменную и нажмете «Изменить», вы можете удалить значение, но не можете нажать «ОК», так как эта кнопка становится серой. Поэтому вы не можете сохранить свои изменения.
Однако вы можете очистить значение переменной среды с помощью командной строки. Чтобы отменить установку переменной среды из командной строки , введите команду setx variable_name ""
. Например, мы набрали setx TEST ""
, и эта переменная среды теперь имела пустое значение.
Далее давайте посмотрим, как удалить переменную среды.
Как удалить переменную среды в Windows
Если вы больше не хотите использовать конкретную переменную среды, выберите ее в окне «Переменные среды». Затем нажмите Удалить. Windows не запрашивает подтверждения этого действия. Поэтому, если вы передумали, необходимо нажать Отмена, чтобы удаление не применялось. Если вы хотите, чтобы удаление продолжилось, нажмите ОК .
Как удалить переменную среды из командной строки
Чтобы удалить переменную среды из командной строки , введите одну из этих двух команд в зависимости от типа этой переменной:
REG delete "HKCUEnvironment" /F /V "variable_name"
, если это переменная среды пользователя, илиREG delete "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /F /V "variable_name"
, если это системная переменная среды.
Например, мы набрали REG delete "HKCUEnvironment" /F /V "TEST"
, и наша переменная среды TEST исчезла из профиля пользователя.
Как удалить переменную среды из PowerShell
Чтобы отменить установку и удалить переменную среды из PowerShell , введите команду:
[Environment]::SetEnvironmentVariable("variable_name", $null ,"User")
, если это переменная профиля пользователя, или[Environment]::SetEnvironmentVariable("variable_name", $null ,"Machine")
, если это общесистемная переменная.
Например, мы набрали [Environment]::SetEnvironmentVariable("TEST", $null ,"User")
, и эта переменная среды исчезла из профиля пользователя.
Это оно!
Переменные среды в Windows 10 — Это динамические пути, которые указывают на привязку какой-либо папки или другие данные о настройках операционной системе. К примеру, если мы начнем устанавливать игру, то установщику нужна будет информация, где папка Program Files, чтобы установить по умолчанию в этот каталог игру. Также, мы можем быстро перейти в папку TEMP, командой %Temp%, не переходя по имени пользователя, которое может отличаться.
В Windows 10 имеется два вида переменных сред:
- Переменные среды пользователя — Содержат информацию для конкретной учетной записи. К примеру, папка OneDrive, расположение профиля и данные о нем, временная папка учетной записи и т.п.
- Системные переменные — Содержат информацию, которая относится к системным ресурсам и устанавливаются операционной системой или драйверами при установке. К примеру, если набрать %windir%, то нас перекинет в системную папку в C:Windows, где установлена ОС.
Как изменять, удалять или создавать переменные среды в Windows 10
Нажмите Win+R и введите sysdm.cpl, чтобы быстро открыть свойства системы. Перейдите во вкладку «Дополнительно» и снизу нажмите на «Переменные среды«.
Вы увидите системные и пользовательские переменные среды. Вы можете добавить, удалить или изменить значение для переменных.
Список переменных через командную строку
Если вам нужно посмотреть весь список переменных со значением через командную строку, то введите ниже команду:
SET
Создать переменную со значением
Если нужно создать переменную для пользователя, то команда будет следующая: setx, где MYWEBPC это переменная, а C:mywebpc это значение.
setx MYWEBPC "C:mywebpc"
Если нужно создать системную переменную со значением, то:
setx /m MYWEBPC "C:mywebpc"
Переименовать значение переменной
Чтобы изменить значение переменной нужно просто заменить значение на другое. Начнем с пользовательской среды:
setx MYWEBPC "C:News"
Изменить системную системную переменную:
setx /m MYWEBPC "C:News"
Два значения в переменной
Мы можем добавить два значения и более для одной переменной разделив точкой с запятой. Пользовательская:
setx MYWEBPC "C:News;C:mywebpc"
Два значения в переменной системной среды:
setx /m MYWEBPC "C:News;Cmywebpc"
Удалить значение в переменной
Чтобы удалить значение в переменной нужно просто оставить поле в кавычках пустым. Для пользовательской среды:
setx MYWEBPC ""
Удалить значение для системной среды:
setx /m MYWEBPC ""
Удалить переменную
Чтобы удалить саму переменную, нужно удалить запись из реестра. Удалить пользовательскую переменную:
REG delete "HKCUEnvironment" /F /V "MYWEBPC"
Удалить переменную для системной среды:
REG delete "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /F /V "MYWEBPC"
Смотрите еще:
- Как изменить системные звуки в Windows 10
- Как удалить содержимое временных файлов папки Temp в Windows 10
- Как удалить папку Windows.old
- Как создать не удаляемую папку в Windows 10
- Как создать и изменить размер раздела диска в Windows 10
[ Telegram | Поддержать ]
Обновлено 28.06.2022
Добрый день уважаемые читатели и гости блога, сегодня я с вами хочу обсудить вот такую тему, что такое переменные среды Windows, где их можно использовать, как в обычной практике пользователя, так и в практике системного администратора, я вам приведу несколько примеров. Как все это дело настраивается и изменяется под ваши нужны, на мой взгляд это фундаментальные знания, понимание которых вам лучше покажет принцип работы операционных систем семейства Windows.
Что такое переменные среды windows
Давайте разберемся в понятии, и так переменная окружения (environment variable) это специального рода ссылки уменьшенного размера, на определенные объекты операционной системы Windows, используемые разными программами для хранения информации и взаимодействия с ней. Можно провести аналогию с относительными ссылками на сайтах, где нет явного указания на протокол. Чаще всего это пути до конкретных директорий в ОС.
ИЛИ
Переменная среды — это динамический «объект» на компьютере, содержащий редактируемое значение, которое может использоваться одной или несколькими программами в Windows. Переменные среды помогают программам узнать, в какой каталог устанавливать файлы, где хранить временные файлы и где найти настройки профиля пользователя. Они помогают формировать среду, которую программы на вашем компьютере используют для запуска.
Где используют переменные среды Windows
Приведу несколько примеров:
- В скриптах > когда нужно например каждому пользователю сделать какую-то настройку, для примера положить на рабочий стол новую папку с документами. Так как для каждого пользователя путь до рабочего стола свой, вида C:UserslackyDesktop, а можно обратиться и по относительному пути за счет переменной %HOMEPATH%, если вы в проводнике введете %HOMEPATH%Desktop, то попадете на рабочий стол текущего пользователя.
- в групповой политике, для настройки пользовательских окружений, например перемещаемые профили.
- Оптимизация кода > если в коде очень часто используются одни и те же пути к файлам или папкам, а так же ключам реестра, вы можете легко назначить короткую переменную для дальнейшего использования. Ниже я вам приведу сводный список по переменным средам windows 10 и предыдущих версий, а так же покажу как их создавать и менять.
Все переменные среды Windows 10 и других версий в своем составе имеют специальный оператор %. Он необходим, чтобы операционная система могла обработать поисковый запрос. Простой пример вы ищите папку TEMP и не знаете, где она располагается, вводите %TEMP% и поиск будет на всех локальных дисках и разделах.
Переменные среды передают информацию о вашем сеансе входа в систему на ваш компьютер. Например, когда приложению необходимо определить, где по умолчанию сохранять файл данных, оно обычно вызывает переменную среды HOMEPATH. Вероятно, вы никогда не устанавливали переменную HOMEPATH самостоятельно, и тем не менее она существует, потому что большинство переменных сред управляются вашей операционной системой. Мастер установки, такой как платформа Nullsoft Scriptable Install System (NSIS) с открытым исходным кодом, обновляет переменные среды при установке нового приложения. Иногда, когда вы устанавливаете что-то за пределами предполагаемого набора инструментов вашей операционной системы, вам, возможно, придется самостоятельно управлять переменной среды. Или вы можете добавить переменную среды в соответствии со своими предпочтениями.
Список переменных сред windows 10
Приведенный глобальный список, в полной мере подойдет и для Windows 7 и для Windows 8.1, все проверено лично. Уверен, что данные знания, очень сильно вам помогут оптимизировать свою работу.
- %ALLUSERSPROFILE% > данная переменная отправит вас в папку C:ProgramData
- %windir% > это папка C:Windows
- %APPDATA% > вы попадается в скрытую папку C:UsersИмя_пользователяAppDataRoaming
- %CommonProgramFiles% > папка C:Program FilesCommon Files
- %CommonProgramFiles(x86)% > перекинет вас в C:Program Files (x86)Common Files
- %CommonProgramW6432% > перекинет вас C:Program FilesCommon Files
- %COMPUTERNAME% > Имя_компьютера, используется скриптах
- %ComSpec% > откроет командную строку Windows 10 C:Windowssystem32cmd.exe
- %HOMEDRIVE% > путь к диску C:
- %HOMEPATH% > эта переменная среды windows перекинет вас в папку пользователя UsersИмя_пользователя
- %LOCALAPPDATA% > эта переменная среды windows перекинет вас в папку C:UsersИмя_пользователяAppDataLocal
- %LOGONSERVER% > Имя_компьютера
- %NUMBER_OF_PROCESSORS% > Количество_процессоров
- %OS% > Windows_NT, так же используется в скриптах
- %Path% > C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;
- %PATHEXT% .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
- %PROCESSOR_ARCHITECTURE% > x86 или AMD64, архитектура Windows
- %PROCESSOR_IDENTIFIER% > Intel64 Family 6 Model 37 Stepping 5, GenuineIntel
- %PROCESSOR_LEVEL% > 6
- %PROCESSOR_REVISION% > 2505 (пример)
- %ProgramData% > папка C:ProgramData
- %ProgramFiles% > C:Program Files
- %ProgramFiles(x86)% > папка C:Program Files (x86)
- %ProgramW6432% > C:Program Files
- %PROMPT% > $P$G
- %PSModulePath% > C:Windowssystem32WindowsPowerShellv1.0Modules согласитесь очеь быстро
- %PUBLIC% > C:UsersPublic
- %SystemDrive% > диск C:
- %SystemRoot% > C:Windows
- %TEMP% > C:UsersИмя_пользователяAppDataLocalTemp (по умолчанию)
- %TMP% > C:UsersИмя_пользователяAppDataLocalTemp (по умолчанию)
- %USERDOMAIN% > Имя_компьютера
- %USERDOMAIN_ROAMINGPROFILE% > Имя_компьютера
- %USERNAME% > Имя_пользователя
- %USERPROFILE% > C:UsersИмя_пользователя
Как вывести список всех переменных Windows
В Windows 10 и других версиях, можно вывести список всех переменных сред Windows, для этого откройте командную строку от имени администратора и введите команду SET. В результате вы получите все переменные среды windows 10 по умолчанию для конкретной операционной системы.
Для удобства вы можете экспортировать весь этот список в текстовый файл, для этого введите:
Вот содержимое данного документы.
То же самое можно посмотреть и с помощью оболочки PowerShell, в которой нужно ввести:
Name Value
—- ——
ALLUSERSPROFILE C:ProgramData
APPDATA C:UsersАдминистраторAppDataRoaming
CommonProgramFiles C:Program FilesCommon Files
CommonProgramFiles(x86) C:Program Files (x86)Common Files
CommonProgramW6432 C:Program FilesCommon Files
COMPUTERNAME DC01
ComSpec C:Windowssystem32cmd.exe
FP_NO_HOST_CHECK NO
HOMEDRIVE C:
HOMEPATH UsersАдминистратор
LOCALAPPDATA C:UsersАдминистраторAppDataLocal
LOGONSERVER \DC01
NUMBER_OF_PROCESSORS 4
OS Windows_NT
Path C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windo…
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL
PROCESSOR_ARCHITECTURE AMD64
PROCESSOR_IDENTIFIER Intel64 Family 6 Model 44 Stepping 2, GenuineIntel
PROCESSOR_LEVEL 6
PROCESSOR_REVISION 2c02
ProgramData C:ProgramData
ProgramFiles C:Program Files
ProgramFiles(x86) C:Program Files (x86)
ProgramW6432 C:Program Files
PSModulePath C:UsersАдминистраторDocumentsWindowsPowerShell Modules;C:Program FilesWindowsPo…
PUBLIC C:UsersPublic
SESSIONNAME Console
SystemDrive C:
SystemRoot C:Windows
TEMP C:Users836D~1AppDataLocalTemp1
TMP C:Users836D~1AppDataLocalTemp1
USERDNSDOMAIN ROOT.PYATILISTNIK.ORG
USERDOMAIN ROOT
USERDOMAIN_ROAMINGPROFILE ROOT
USERNAME Администратор
USERPROFILE C:UsersАдминистратор
windir C:Windows
Еще одним методом посмотреть переменные операционной системы, выступает реестр Windows. Нажимаем WIN+R и вводим regedit. В открывшемся окне редактор реестра, перейдите в ветку:
Для просмотра переменных для компьютера
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment
Для просмотра переменных для пользователя
HKEY_CURRENT_USEREnvironment
Создаем переменные среды windows 10 (Графический метод)
ПО мимо уже имеющихся переменных Windows 10, вы можете создать и новые, это очень легко и не запрещается. Что от вас требуется, вам необходимо зайти в свойства системы. Тут несколько методов, если мы говорим про Windows 10, то можно сделать через правый клик по кнопке «Пуск», выбрав пункт система.
Универсальный метод, это зайти в свойства моего компьютера или нажать сочетание клавиш WIN+Pause Breake.
С окне свойства системы, вы должны перейти в пункт «Дополнительные параметры системы»
Далее пункт переменные среды.
И перед вами два вида переменных сред Windows:
- Временные переменные temp
- Системные переменные
И те и другие можно легко изменить или создать.
Для примера я создам новую системную переменную, назову ее SYSPREP и укажу путь до папки C:WindowsSystem32Sysprep
Проверяю, что все добавилось. И теперь вбив переменную %SYSPREP% у меня откроется C:WindowsSystem32Sysprep.
Как видите тут ничего сложного нет, благодаря вот таким вещам вы можете сильно упростить себе жизнь и экономить много времени.
Управление переменными средами Windows через PowerShell
Переменные среды в PowerShell — это особые типы переменных, которые предоставляют системе информацию о среде операционной системы. С помощью переменных среды вы можете просматривать и изменять переменные в реестре Windows, а также переменные, установленные для конкретного сеанса.
PowerShell есть функция, называемая провайдерами, которая создает один или несколько дисков, представляющих собой иерархические структуры, подобные файловой системе, которые позволяют пользователю управлять различными областями в Windows. Один из этих провайдеров предназначен для переменных среды под названием Environment.
В PowerShell переменные среды хранятся на Env:, доступном через поставщика среды PowerShell. Это не физический диск, а виртуальная файловая система.
Как вы можете видеть выше, у поставщика среды есть диск с именем Env. Этот диск предоставляет все переменные среды в системе Windows. Например, командлет Get-ChildItem можно использовать для перечисления всех переменных пользовательской среды в вашей системе.
Get-ChildItem -Path Env: или вот так Get-ChildItem Env: | out-host -paging
Как установить локальную переменную среды Windows
Когда вы создаете обычную переменную, она считается локальной, то есть она не определена вне оболочки, которая ее создала, как только вы закроете текущее окно PowerShell, ваша переменная исчезнет — это есть локальная переменная. Давайте создадим ее.
$env:SiteName = ‘pyatilistnik.org’
Чтобы изменить значение нужной переменной, просто повторите команду с нужным значением.
Чтобы добавить к текущему значению, еще одно, то используйте оператор += и разделите значение точкой с запятой (;)
$env:SiteName += ‘;pyatilistnik.info’
Но не забываем, что это временная переменная для текущего сеанса.
Как сделать постоянные переменные среды Windows для пользователя
Чтобы установить переменную среды Windows, которая будет доступна для всех процессов, запускаемых вашей учетной записью, используйте следующее:
[System.Environment]::SetEnvironmentVariable(‘siteName’,’pyatilistnik .org’,[System.EnvironmentVariableTarget]::User)
Как сделать постоянные переменные среды Windows для компьютера
Чтобы создать переменную среды, видимую для каждого процесса, работающего на машине:
[System.Environment]::SetEnvironmentVariable(‘siteName’,’pyatilistnik .org’,[System.EnvironmentVariableTarget]::Machine)
Тут PowerShell использует класс [System.Environment] с методом SetEnvironmentVariable для переменной среды.
Или такой вариант:
[System.Environment]::SetEnvironmentVariable(‘siteName’,’pyatilistnik .info’)
Как удалить переменную среды Windows
Чтобы удалить нужную переменную используйте вот такую конструкцию, в моем примере я удалю переменную siteName.
[Environment]::SetEnvironmentVariable(«siteName», «», «Machine»)
Как выгрузить переменные среды Windows в файл через PowerShell
Если вы хотите сохранить список текущих переменных сред Windows в текстовом файле, то введите команду:
dir Env: | FL | FT -AutoSize >> c:temp1.txt
На этом у меня все, если у вас остались вопросы, то пишите постараемся вместе в них разобраться.
Создание и управление переменными средами Windows через командную строку
Не будим списывать со счетов старую, добрую командную строку, так как она умеет так же работать с переменными Windows. Запустите ее от имени администратора.
- Создадим новую пользовательскую переменную MY-EMAIL, для этого пишем:
setx MY-EMAIL «microsoftexam@yandex.ru»
Не забываем перезапустить командную строку, иначе новую переменную вы не увидите.
- Создадим новую системную переменную MY-EMAIL, для этого пишем:
setx /m MY-EMAIL «microsoftexam@yandex.ru»
- Переименовывание пользовательской и системной переменной среды
Просто повторите те же команды, что и выше, но с уже нужными, новыми значениями
- Добавляем еще одно значение в существующую пользовательскую переменную Windows, тут все добавляется через знак «;«.
setx MYWEBPC «microsoftexam@yandex.ru;microsoftexam2022@yandex.ru»
- Добавляем еще одно значение в существующую системную переменную Windows, тут все добавляется через знак «;«.
setx /m MY-EMAIL «microsoftexam@yandex.ru;microsoftexam2022@yandex.ru»
- Удаляем значение у пользовательской переменной MY-EMAIL
- Удаляем значение у системной переменной MY-EMAIL
- Удаляем переменную MY-EMAIL
REG delete «HKCUEnvironment» /F /V «MY-EMAIL»
REG delete «HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment» /F /V «MY-EMAIL»
Переменные среды могут быть полезны программистам, системным администраторам и другим опытным пользователям. Они предоставляют нам подробную информацию о среде, в которой работает приложение. В некоторых случаях вы можете удалить переменную среды. В остальных случаях можно изменить только его значение.
Иногда вам может потребоваться очистить переменную среды в Windows. Но как вы можете это сделать? Продолжайте читать, чтобы узнать обо всех методах, которые вы можете использовать для удаления и изменения переменных среды.
Как сбросить переменную Env в Windows
Среда операционной системы использует данные, хранящиеся в переменных среды. От них мы можем узнать много информации о том, как работает программное обеспечение. Переменные среды можно разделить на две категории:
- Когда программа установлена, ОС или драйвер задают эти переменные среды, которые включают информацию о системных ресурсах. Они называются системными переменными среды. Например, переменная windir будет содержать местоположение Windows.
- Информация, относящаяся к данной учетной записи пользователя, хранится в переменных среды пользователя. Примером этого является установка переменной PATH для запуска команд без необходимости каждый раз указывать путь к файлу.
Существуют способы сбросить оба типа переменных Env. Вы можете сделать это с помощью окна «Переменные среды», Power Shell и редактора реестра.
Окно переменных среды
Вы можете использовать командную строку для очистки системных и пользовательских переменных окружения на ПК с Windows. Вот как очистить переменные System Env:
Чтобы очистить переменные среды пользователя, выполните следующие действия:
Силовая оболочка
Power Shell также можно использовать для эффективной очистки обоих типов переменных Env. Вот как очистить переменные System Env:
Get-ChildItem Env:
[Environment]::SetEnvironmentVariable(“[variable name]»$null»Машина»)
Если вы хотите удалить User Env Variable, выполните следующие действия:
Get-ChildItem Env:
[Environment]::SetEnvironmentVariable(“[variable name]»$null»Пользователь»)
Редактор реестра
Вот как очистить переменные System Env с помощью редактора реестра:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment
И чтобы очистить пользовательскую переменную Env, выполните следующие действия:
HKEY ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬОкружающая среда
Дополнительные часто задаваемые вопросы
Почему важны переменные Env?
Ответ на вопрос «Что такое переменные среды?» является относительно трудным. Как вы можете заметить из этого руководства, работа с программами Windows затрудняет поиск и наблюдение за переменными среды.
Их управление осуществляется в фоновом режиме операционной системой и многочисленными приложениями и драйверами, которые вы запускаете на своем компьютере. С другой стороны, ОС и ваши существующие программы полагаются на них. Ваша система может дать сбой, если вы возитесь со значениями критических системных переменных, не понимая, что делаете.
Каковы переменные среды Windows по умолчанию?
Каждый ПК с Windows имеет огромное количество переменных. Часто используются такие переменные, как ОС, TEMP и PATH. Вы можете найти значения по умолчанию для переменных среды Windows на таких веб-сайтах, как Википедия.
Имейте контроль над своими переменными Env
То же программное обеспечение, которое используется для очистки переменных окружения, также можно использовать для редактирования или создания новых. Однако, если вы не уверены в этом, лучше оставить это профессионалу. Поскольку переменные являются основой вашей операционной системы и программного обеспечения, вмешательство в них может привести к сбою системы. Это может быть дороже, чем просить профессионала разобраться с ними в первую очередь.
Вы когда-нибудь пытались очистить переменные Env? Вы пробовали редактировать или создавать новые? Вам было трудно? Дайте нам знать в разделе комментариев ниже!
Что вы думаете об этой статье?
Оглавление:
- Откройте окно Переменные среды
- Как изменить значение переменной среды в Windows
- Как очистить значение переменной среды в Windows
- Как удалить переменную среды в Windows
- Знаете ли вы, как удалить переменную среды из командной строки?
Программистам, системным администраторам и опытным пользователям может понадобиться работать с переменными среды. Некоторые могут захотеть удалить переменную среды; другие захотят изменить его значение и так далее. В этом руководстве рассказывается, как изменить, очистить и удалить любую переменную среды в Windows 10, Windows 7 и Windows 8.1:
Откройте окно Переменные среды
Чтобы внести многие из показанных правок, сначала необходимо открыть окно « Переменные среды» . Это руководство объясняет, как открыть это окно, и показывает основы работы с переменными среды: Простые вопросы: что такое переменные среды в Windows?
Если вы хотите пропустить чтение, один путь, который работает одинаково во всех версиях Windows, это открыть панель управления и перейти к « Система и безопасность -> Система ». Там нажмите или коснитесь ссылки «Дополнительные параметры системы» слева. Откроется окно « Свойства системы» . Там нажмите кнопку Переменные среды .
Для выполнения некоторых из указанных шагов также необходимо открыть командную строку (cmd.exe) от имени администратора. Так что сделайте это тоже, прежде чем двигаться вперед.
Как изменить значение переменной среды в Windows
Если вы хотите изменить значение существующей переменной среды, сначала выберите ее в окне Переменные среды . Затем нажмите или нажмите « Изменить» .
Вам будет показано окно, в котором вы можете редактировать как имя, так и значение переменной. Сделайте необходимые изменения и нажмите ОК. Затем нажмите OK еще раз в окне Переменные среды .
Вы можете редактировать значение существующей переменной среды (но не имя), также из командной строки . Командой, которую вы должны ввести, является setx variable_name «value « .
Например, мы набрали setx TEST «C: « и создали пользовательскую переменную с именем TEST со значением C: . Следует отметить один аспект: команда setx перезаписывает существующее значение тем, которое вы вводите. Поэтому, если вы используете эту команду несколько раз для одной и той же переменной, переменная сохранит последнее введенное вами значение.
Если вы хотите, чтобы переменная имела несколько путей в своем значении, вы должны написать их все, разделенные точкой с запятой, без пробелов, как на скриншоте ниже.
Как очистить значение переменной среды в Windows
Если вы хотите удалить значение переменной среды (сохраняя ее имя), вы не сможете сделать это с помощью мыши и клавиатуры из окна Переменные среды . Если вы выберете переменную и нажмете « Изменить», вы можете удалить значение, но не можете нажать «ОК», так как эта кнопка становится серой. Поэтому вы не можете сохранить свои изменения.
Единственный шанс очистить значение переменной среды — использовать командную строку . Введите команду setx имя_переменной «» . Например, мы набрали setx TEST «» и эта переменная окружения теперь имела пустое значение.
Далее посмотрим, как удалить переменную окружения.
Как удалить переменную среды в Windows
Если вы больше не хотите использовать определенную переменную среды, выберите ее в окне « Переменные среды» . Затем нажмите Удалить . Windows не запрашивает никакого подтверждения этого действия. Поэтому, если вы передумали, вы должны нажать Отмена, чтобы удаление не применялось. Если вы хотите, чтобы удаление продолжалось, также нажмите OK .
Знаете ли вы, как удалить переменную среды из командной строки?
К сожалению, мы не нашли метод удаления переменных среды из командной строки . Если вы знаете один, не стесняйтесь поделиться им в комментарии ниже. Мы обещаем обновить эту статью на основе ваших комментариев.
You may want to make these two permanent with setx but obviously no need to
C:>set uvar=HKCUEnvironment
C:>
C:>set mvar=HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
C:>
Some terminology
Within a Key(which is like a folder), you have a variable with some data like a=5
http://msdn.microsoft.com/en-us/library/3dwk5axy.aspx
talks about name(a) having a value(5).
Registry terminology looks a bit different on msdn but reg.exe and wikipedia seem consistent.
wikipedia http://en.wikipedia.org/wiki/Windows_Registry says so it
«Registry values are name/data pairs stored within keys»
talks of a name/data pair. name(a) data(5) and the pair together being a value.
REG seems to use /v which probably refers to both variable name and its data (as in wikipedia), it does show both the variable name and its data. And REG has a /d which I suppose is for just data.
An example with setx
C:>reg query %uvar%
HKEY_CURRENT_USEREnvironment
TEMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
TMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
...
C:>setx aaa 3
C:>reg query %uvar%
HKEY_CURRENT_USEREnvironment
TEMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
TMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
...
aaa REG_SZ 3
If you try to use setx to remove it, the closest you can get is clearing it as this MS KB article this MS KB article 195050 says which leaves you with it still in the registry.
setx not removing the variable from the registry
C:>setx aaa ""
SUCCESS: Specified value was saved.
C:>reg query %uvar%
HKEY_CURRENT_USEREnvironment
TEMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
TMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
...
aaa REG_SZ
C:>
It’s worth noting though, that the variable is gone as far as the cmd prompt is concerned. echo %aaa% will display %aaa% so the variable is gone. There’s just some unnecessary junk in the registry now.
user makes an interesting point, that now when you try to set a system wide variable, it doesn’t work. as it gets overwritten by what is in the user variable, in this case, it will always come up as undefined.
C:>reg delete %uvar% /v aaa
Delete the registry value aaa (Yes/No)? y
The operation completed successfully.
C:>
Notice that aaa is now gone. Below.
C:>reg query %uvar%
HKEY_CURRENT_USEREnvironment
TEMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
TMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
...
C:>
If you want to do it for a system/machine environment variable rather than a user one.
-the lines below must be from an administrative privileged cmd prompt
-notice the key is HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
-The %mvar% (unlike %uvar%) needs quotes round it ‘cos the key has a space in it. If you miss the quotes it’s no big deal you just get an error which might remind you to use quotes.
-And of course if you want to set an environment variable in that part of the registry with setx, use e.g. setx aaa 5 -m i.e. the -m after.
C:>set mvar=HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
C:>reg delete "%mvar%" /v aaa
Delete the registry value aaa (Yes/No)? y
The operation completed successfully.
C:>
further note
You might be able to create an environment variable just with REG ADD or REG DELETE..(in place of setx) but either way, when setting a variable you may want to use set too, so that it is set for the current session too not just the next one. And a link re setx https://superuser.com/questions/647505/set-enviroment-variable-setx
You may want to make these two permanent with setx but obviously no need to
C:>set uvar=HKCUEnvironment
C:>
C:>set mvar=HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
C:>
Some terminology
Within a Key(which is like a folder), you have a variable with some data like a=5
http://msdn.microsoft.com/en-us/library/3dwk5axy.aspx
talks about name(a) having a value(5).
Registry terminology looks a bit different on msdn but reg.exe and wikipedia seem consistent.
wikipedia http://en.wikipedia.org/wiki/Windows_Registry says so it
«Registry values are name/data pairs stored within keys»
talks of a name/data pair. name(a) data(5) and the pair together being a value.
REG seems to use /v which probably refers to both variable name and its data (as in wikipedia), it does show both the variable name and its data. And REG has a /d which I suppose is for just data.
An example with setx
C:>reg query %uvar%
HKEY_CURRENT_USEREnvironment
TEMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
TMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
...
C:>setx aaa 3
C:>reg query %uvar%
HKEY_CURRENT_USEREnvironment
TEMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
TMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
...
aaa REG_SZ 3
If you try to use setx to remove it, the closest you can get is clearing it as this MS KB article this MS KB article 195050 says which leaves you with it still in the registry.
setx not removing the variable from the registry
C:>setx aaa ""
SUCCESS: Specified value was saved.
C:>reg query %uvar%
HKEY_CURRENT_USEREnvironment
TEMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
TMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
...
aaa REG_SZ
C:>
It’s worth noting though, that the variable is gone as far as the cmd prompt is concerned. echo %aaa% will display %aaa% so the variable is gone. There’s just some unnecessary junk in the registry now.
user makes an interesting point, that now when you try to set a system wide variable, it doesn’t work. as it gets overwritten by what is in the user variable, in this case, it will always come up as undefined.
C:>reg delete %uvar% /v aaa
Delete the registry value aaa (Yes/No)? y
The operation completed successfully.
C:>
Notice that aaa is now gone. Below.
C:>reg query %uvar%
HKEY_CURRENT_USEREnvironment
TEMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
TMP REG_EXPAND_SZ %USERPROFILE%AppDataLocalTemp
...
C:>
If you want to do it for a system/machine environment variable rather than a user one.
-the lines below must be from an administrative privileged cmd prompt
-notice the key is HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
-The %mvar% (unlike %uvar%) needs quotes round it ‘cos the key has a space in it. If you miss the quotes it’s no big deal you just get an error which might remind you to use quotes.
-And of course if you want to set an environment variable in that part of the registry with setx, use e.g. setx aaa 5 -m i.e. the -m after.
C:>set mvar=HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
C:>reg delete "%mvar%" /v aaa
Delete the registry value aaa (Yes/No)? y
The operation completed successfully.
C:>
further note
You might be able to create an environment variable just with REG ADD or REG DELETE..(in place of setx) but either way, when setting a variable you may want to use set too, so that it is set for the current session too not just the next one. And a link re setx https://superuser.com/questions/647505/set-enviroment-variable-setx