Как удалить переменную окружения в windows

Windows has the setx command: Description: Creates or modifies environment variables in the user or system environment. So you can set a variable like this: setx FOOBAR 1 And you can cl...

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.

  1. Save the PowerShell script to a file (we’ll call it updateenv.ps1).
  2. Do this from the command line: reg delete «HKCUEnvironment» /v FOO /f
  3. Run updateenv.ps1.
  4. 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 имеется два вида переменных сред:

  1. Переменные среды пользователя — Содержат информацию для конкретной учетной записи. К примеру, папка OneDrive, расположение профиля и данные о нем, временная папка учетной записи и т.п.
  2. Системные переменные — Содержат информацию, которая относится к системным ресурсам и устанавливаются операционной системой или драйверами при установке. К примеру, если набрать %windir%, то нас перекинет в системную папку в C:Windows, где установлена ОС.

Как изменять, удалять или создавать переменные среды в Windows 10

Нажмите Win+R и введите sysdm.cpl, чтобы быстро открыть свойства системы. Перейдите во вкладку «Дополнительно» и снизу нажмите на «Переменные среды«.

Переменные среды свойства системы вход

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

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

Список переменных через командную строку

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

  • SET

Посмотреть все переменные при помощи CMD 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.

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

Давайте разберемся в понятии, и так переменная окружения (environment variable) это специального рода ссылки уменьшенного размера, на определенные объекты операционной системы Windows, используемые разными программами для хранения информации и взаимодействия с ней. Можно провести аналогию с относительными ссылками на сайтах, где нет явного указания на протокол. Чаще всего это пути до конкретных директорий в ОС.

ИЛИ

Переменная среды — это динамический «объект» на компьютере, содержащий редактируемое значение, которое может использоваться одной или несколькими программами в Windows. Переменные среды помогают программам узнать, в какой каталог устанавливать файлы, где хранить временные файлы и где найти настройки профиля пользователя. Они помогают формировать среду, которую программы на вашем компьютере используют для запуска.

Где используют переменные среды Windows

Приведу несколько примеров:

  • В скриптах > когда нужно например каждому пользователю сделать какую-то настройку, для примера положить на рабочий стол новую папку с документами. Так как для каждого пользователя путь до рабочего стола свой, вида C:UserslackyDesktop, а можно обратиться и по относительному пути за счет переменной %HOMEPATH%, если вы в проводнике введете %HOMEPATH%Desktop, то попадете на рабочий стол текущего пользователя.

переменные среды windows 10

  • в групповой политике, для настройки пользовательских окружений, например перемещаемые профили.
  • Оптимизация кода > если в коде очень часто используются одни и те же пути к файлам или папкам, а так же ключам реестра, вы можете легко назначить короткую переменную для дальнейшего использования. Ниже я вам приведу сводный список по переменным средам 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 по умолчанию для конкретной операционной системы.

переменные среды windows 10 по умолчанию

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

переменная среды path windows 10

Вот содержимое данного документы.

переменные среды windows 10-2

То же самое можно посмотреть и с помощью оболочки PowerShell, в которой нужно ввести:

Системные переменные 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-1

реестр, переменные среды windows 10-2

Создаем переменные среды windows 10 (Графический метод)

ПО мимо уже имеющихся переменных Windows 10, вы можете создать и новые, это очень легко и не запрещается. Что от вас требуется, вам необходимо зайти в свойства системы. Тут несколько методов, если мы говорим про Windows 10, то можно сделать через правый клик по кнопке «Пуск», выбрав пункт система.

Как создать переменные среды windows 10-1

Универсальный метод, это зайти в свойства моего компьютера или нажать сочетание клавиш WIN+Pause Breake.

Как создать переменные среды windows 10-2

С окне свойства системы, вы должны перейти в пункт «Дополнительные параметры системы»

изменение переменных среды windows 7-1

Далее пункт переменные среды.

изменение переменных среды windows 7-2

И перед вами два вида переменных сред Windows:

  • Временные переменные temp
  • Системные переменные

И те и другие можно легко изменить или создать.

изменение переменных среды windows 10-1

Для примера я создам новую системную переменную, назову ее SYSPREP и укажу путь до папки C:WindowsSystem32Sysprep

создать переменные среды windows 10-1

Проверяю, что все добавилось. И теперь вбив переменную %SYSPREP% у меня откроется C:WindowsSystem32Sysprep.

создать переменные среды windows 10-2

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

Управление переменными средами Windows через PowerShell

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

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

В PowerShell переменные среды хранятся на Env:, доступном через поставщика среды PowerShell. Это не физический диск, а виртуальная файловая система.

Get-PSProvider

Как вы можете видеть выше, у поставщика среды есть диск с именем Env. Этот диск предоставляет все переменные среды в системе Windows. Например, командлет Get-ChildItem можно использовать для перечисления всех переменных пользовательской среды в вашей системе.

Get-ChildItem -Path Env: или вот так Get-ChildItem Env: | out-host -paging

Вывод переменных сред Get-ChildItem

Как установить локальную переменную среды Windows

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

$env:SiteName = ‘pyatilistnik.org’

Создание локальной переменной среды Windows

Чтобы изменить значение нужной переменной, просто повторите команду с нужным значением.

Изменение локальной переменной среды Windows

Чтобы добавить к текущему значению, еще одно, то используйте оператор += и разделите значение точкой с запятой (;)

$env:SiteName += ‘;pyatilistnik.info’

Добавление второго значения в переменную среду Windows

Но не забываем, что это временная переменная для текущего сеанса.

Как сделать постоянные переменные среды 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»

Не забываем перезапустить командную строку, иначе новую переменную вы не увидите.

Создание переменной среды Windows

  • Создадим новую системную переменную MY-EMAIL, для этого пишем:

setx /m MY-EMAIL «microsoftexam@yandex.ru»

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

Просто повторите те же команды, что и выше, но с уже нужными, новыми значениями

  • Добавляем еще одно значение в существующую пользовательскую переменную Windows, тут все добавляется через знак «;«.

setx MYWEBPC «microsoftexam@yandex.ru;microsoftexam2022@yandex.ru»

Добавление дополнительного значения у переменной среды Windows

  • Добавляем еще одно значение в существующую системную переменную 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:

  • Запустите Панель управления и выберите значок Система.
  • Выберите ссылку «Дополнительные параметры системы» с левой стороны и при желании закройте окно панели управления системой.
  • Выберите значок Env Variables с помощью мыши или постукивающего устройства.
  • Нажмите «Удалить» рядом с переменной, которую вы хотите удалить, в нижней части раздела «Системные переменные».
  • Когда вы закончите удаление системных переменных, нажмите «ОК» для подтверждения.
  • Чтобы очистить переменные среды пользователя, выполните следующие действия:

  • Нажмите на кнопку «Учетные записи пользователей» в Панели управления.
  • Слева нажмите или коснитесь ссылки «Изменить мои переменные среды» и, если хотите, закройте окно панели управления учетными записями пользователей.
  • Выберите переменную, которую вы хотите удалить, в верхней части раздела Пользовательские переменные для <текущего имени пользователя> и нажмите кнопку «Удалить».
  • Когда вы закончите удаление пользовательских переменных из своей учетной записи, нажмите «ОК», чтобы подтвердить удаление.
  • Силовая оболочка

    Power Shell также можно использовать для эффективной очистки обоих типов переменных Env. Вот как очистить переменные System Env:

  • Запустите сеанс Windows PowerShell в режиме с повышенными привилегиями.
  • Вставьте следующую команду в PowerShell с повышенными правами:
    Get-ChildItem Env:
  • Нажмите «Ввод» и запишите имя системной переменной, которую вы хотите сбросить.
  • Введите приведенную ниже команду в PowerShell с повышенными правами:
    [Environment]::SetEnvironmentVariable(“[variable name]»$null»Машина»)
  • Заменять [variable name] с именем переменной, которую вы хотите удалить в приведенной выше команде.
  • Теперь вы можете выйти из оболочки Windows PowerShell с повышенными привилегиями.
  • Если вы хотите удалить User Env Variable, выполните следующие действия:

  • Запустите Windows PowerShell в повышенном режиме.
  • В командной строке PowerShell с повышенными привилегиями вставьте следующую команду:
    Get-ChildItem Env:
  • Нажмите Ввод.»
  • Теперь введите или вставьте команду ниже:
    [Environment]::SetEnvironmentVariable(“[variable name]»$null»Пользователь»)
  • Нажмите «Enter» еще раз и закройте PowerShell.
  • Редактор реестра

    Вот как очистить переменные System Env с помощью редактора реестра:

  • Чтобы запустить редактор реестра, нажмите Win + R, чтобы открыть «Выполнить», введите «regedit» в «Выполнить», затем нажмите «ОК».
  • В левой части редактора реестра перейдите к ключу, показанному ниже.
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment
  • Нажмите или нажмите и удерживайте имя значения переменной, которую вы хотите удалить, справа от ключа среды в редакторе реестра. Затем нажмите или коснитесь «Удалить».
  • Подтвердите, нажав «Да».
  • Закройте редактор реестра.
  • И чтобы очистить пользовательскую переменную Env, выполните следующие действия:

  • Чтобы открыть редактор реестра, используйте Win + R, чтобы вызвать «Выполнить», введите «regedit» в «Выполнить» и нажмите «ОК».
  • В левой панели редактора реестра перейдите к ключу, указанному ниже.
    HKEY ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬОкружающая среда
  • В редакторе реестра щелкните или нажмите и удерживайте имя значения переменной, которую вы хотите удалить, справа от ключа среды. После этого выберите «Удалить».
  • Подтвердите свой выбор, выбрав «Да».
  • Убедитесь, что редактор реестра закрыт.
  • Дополнительные часто задаваемые вопросы

    Почему важны переменные Env?

    Ответ на вопрос «Что такое переменные среды?» является относительно трудным. Как вы можете заметить из этого руководства, работа с программами Windows затрудняет поиск и наблюдение за переменными среды.

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

    Каковы переменные среды Windows по умолчанию?

    Каждый ПК с Windows имеет огромное количество переменных. Часто используются такие переменные, как ОС, TEMP и PATH. Вы можете найти значения по умолчанию для переменных среды Windows на таких веб-сайтах, как Википедия.

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

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

    Вы когда-нибудь пытались очистить переменные Env? Вы пробовали редактировать или создавать новые? Вам было трудно? Дайте нам знать в разделе комментариев ниже!

    Что вы думаете об этой статье?

    Оглавление:

    • Откройте окно Переменные среды
    • Как изменить значение переменной среды в Windows
    • Как очистить значение переменной среды в Windows
    • Как удалить переменную среды в Windows
    • Знаете ли вы, как удалить переменную среды из командной строки?
    Видео: Переменные среды окружения Windows: как создать новую или установить новое значение 👨‍💻🆘💻 (Февраль 2023)

    Программистам, системным администраторам и опытным пользователям может понадобиться работать с переменными среды. Некоторые могут захотеть удалить переменную среды; другие захотят изменить его значение и так далее. В этом руководстве рассказывается, как изменить, очистить и удалить любую переменную среды в 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 .

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

    К сожалению, мы не нашли метод удаления переменных среды из командной строки . Если вы знаете один, не стесняйтесь поделиться им в комментарии ниже. Мы обещаем обновить эту статью на основе ваших комментариев.

    Как изменить, очистить или удалить переменные среды в Windows

    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

    Понравилась статья? Поделить с друзьями:
  • Как удалить пользоваться windows 10 через командную строку
  • Как удалить первую учетную запись windows 10
  • Как удалить пользователя майкрософт в windows 11
  • Как удалить первого пользователя на windows 10
  • Как удалить пользователя гость windows 10