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

Быстрые ссылки
Как добавить или изменить переменную среды
Как удалить переменную среды
Что такое переменная среды (одной строкой)
Переменная среды — это именованное значение, доступное приложениям и процессам в системе, например PATH, TMP или пользовательские переменные.
Предупреждения и важные заметки
Важно: Для изменения системных переменных требуется запуск CMD от имени администратора. Неправильные изменения реестра могут повредить систему — делайте резервную копию перед удалением.
Примечание: Изменения, внесённые командой set, действуют только в текущем процессе (оконном сеансе). Изменения setx записываются в реестр и сохраняются между перезагрузками.
Как открыть Command Prompt от имени администратора
- Нажмите «Пуск», введите “cmd” в поле поиска.
- Щёлкните правой кнопкой по «Командная строка» и выберите «Запуск от имени администратора».

Любая пользовательская переменная может быть изменена в обычном окне CMD, а системные — только в повышенном режиме.
Как добавить или изменить переменную среды
Существует два основных подхода:
- Временное назначение — команда set, действует только в текущем окне или процессе.
- Постоянное назначение — команда setx, записывает значение в реестр и сохраняется между перезагрузками.
Временное назначение (set)
Команда set задаёт переменную только для текущего процесса. Это удобно для тестов и скриптов.
Пример: создать переменную LifeAnswerVar со значением 42:
set LifeAnswerVar=42Пока окно CMD открыто, переменная LifeAnswerVar доступна и равна 42.

Если окно закрыть — переменная исчезнет.

Тот же приём работает для системных переменных в рамках текущего процесса: замените имя переменной на нужное.
Пример: временно перенести TMP в папку C:\Example Folder:
set TMP=C:\"Example Folder"
Первая строка set TMP показывает текущее значение TMP, вторая — присваивает новое значение, третья подтверждает изменение.
Постоянное назначение (setx)
Команда setx записывает переменные в реестр Windows. Они сохраняются между перезагрузками и видимы новым процессам.
Пример: создать системную переменную ExVar1 со значением “Tomato”:
setx ExVar1 Tomato /mФлаг /m указывает на создание переменной в системной области (HKEY_LOCAL_MACHINE), а не в пользовательской (HKEY_CURRENT_USER).

Если вы используете setx для изменения переменной, команда set в уже открытом окне не покажет новое значение — откройте новое окно CMD.
Если нужно добавить или изменить пользовательскую переменную, просто опустите /m.
Как удалить переменную среды
Удаление сложнее добавления: временное удаление просто обнуляет значение в текущем процессе, постоянное — требует правки реестра через reg.
Как и раньше, системные переменные удаляются из повышенного CMD, пользовательские — из обычного.
Временное удаление (в рамках процесса)
Чтобы временно убрать значение переменной для текущего процесса (например, для скрипта), присвойте ей пустое значение.
Если в реестре есть ExVar1=Tomato, но вы хотите игнорировать его в текущей сессии:
set ExVar1=Переменная будет пустой до закрытия окна или окончания выполнения скрипта.

Постоянное удаление (reg)
Для окончательного удаления используйте reg — командную строку для редактирования реестра. Будьте осторожны и перед изменениями создайте резервную копию ключа реестра.
Где хранятся переменные:
- Пользовательские:
HKEY_CURRENT_USER\Environment - Системные:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Предположим, ExVar1=Tomato — системная переменная. Её полная ветка:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ExVar1Поскольку в пути есть пробелы, окружайте путь кавычками в командной строке.
Команда для удаления ключа (замените ExVar1 на своё имя переменной):
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\" /f /v ExVar1Разбор параметров:
reg delete— приложение и команда."HKEY_LOCAL_MACHINE\...\Environment\"— ветка реестра (в кавычках из‑за пробелов)./f— удалять без подтверждения./v— указывает имя значения (value) для удаления.ExVar1— имя удаляемого значения.
Если ExVar1 была пользовательской, команда будет проще:
reg delete HKEY_CURRENT_USER\Environment /f /v ExVar1При успешном удалении вы увидите в CMD сообщение “The operation completed successfully”.

После удаления обязательно перезапустите проводник (explorer.exe) или перезагрузите компьютер, чтобы изменения вступили в силу для рабочих столов и приложений.
Частые ошибки и как их исправить
- Ошибка: команда не находит значение после setx — причина: новое значение видимо только в новых процессах; откройте новое окно CMD.
- Ошибка: отказано в доступе при reg delete — причина: не тот уровень привилегий; запустите CMD от имени администратора.
- Ошибка: некорректный путь с пробелами — причина: отсутствие кавычек вокруг пути; оберните путь в
". - Ошибка: случайное удаление важной переменной — восстановите из резервной копии реестра (если есть) или вручную создайте переменные по умолчанию.
Совет: перед reg delete сделайте экспорт ветки, чтобы вернуть изменения при необходимости:
reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" backup_env.regМини‑методология: безопасный рабочий процесс (шаги)
- Оцените, нужно ли временно «приглушить» переменную (set) или удалить/изменить навсегда (setx/reg).
- Прежде чем менять что‑то в реестре — экспортируйте ветку (
reg export ...). - Выполните команду в тестовой среде (локальное окно, скрипт) и проверьте поведение.
- Для системных изменений используйте повышенный CMD и документируйте изменения.
- Перезапустите explorer.exe или выполните полную перезагрузку и проверьте результат.
Чеклист по ролям
Администратор:
- Запустить CMD от имени администратора.
- Экспортировать текущую ветку реестра перед изменениями.
- Удалять только проверенные и задокументированные значения.
- Оповестить команду о возможной перезагрузке сервисов.
Разработчик / тестировщик:
- Использовать
setдля локального тестирования. - После проверки применить
setxтолько если нужно постоянное поведение. - При тестировании CI использовать контейнеры/тестовые машины.
Пользователь:
- Если не уверены — обратитесь к администратору.
- Не удаляйте системные переменные самостоятельно.
Пошаговый план отката (runbook)
- Если операция пошла не так, не перезагружайте систему сразу — зафиксируйте текущее состояние.
- Если вы экспортировали ветку реестра до изменений, восстановите её командой:
reg import backup_env.reg- Если вы не экспортировали ветку, вручную повторно создайте удалённые значения (по документу или другим хостам).
- Перезапустите explorer.exe и проверьте, вернулось ли поведение.
- При серьёзных проблемах откатитесь к последней точке восстановления системы или обратитесь к техподдержке.
Диагностическое дерево принятия решения
flowchart TD
A[Нужно изменить переменную среды?] --> B{Временное или постоянное?}
B -->|Временное| C[Использовать set в текущем окне или скрипте]
B -->|Постоянное| D{Пользовательская или системная?}
D -->|Пользовательская| E[Использовать setx без /m]
D -->|Системная| F[Использовать setx с /m или reg для удаления]
F --> G{Удаление или изменение?}
G -->|Изменение| H[setx Var Value /m]
G -->|Удаление| I[reg delete '...\Environment\' /f /v VarName]
C --> J[Тест и закрыть окно]
E --> K[Открыть новое окно CMD для проверки]
H --> K
I --> L[Перезапустить explorer.exe или компьютер]
K --> M[Проверить поведение приложений]
L --> MКритерии приёмки
- Новая или изменённая переменная доступна в новых окнах CMD (для setx) или в текущем окне (для set).
- При удалении через reg значение отсутствует в соответствующей ветке реестра.
- После перезапуска Explorer изменения видимы во всех приложениях, которые зависят от переменной.
Краткий словарь (1‑строчно)
- Переменная среды: именованное значение, видимое процессам.
- CMD: командная строка Windows.
- set: временно установить переменную в текущем процессе.
- setx: записать переменную в реестр (постоянно).
- reg: утилита для управления реестром через командную строку.
Когда этот подход не подходит (контрпример)
- Если нужно массово изменить переменные на ферме серверов — лучше использовать групповую политику (GPO) или управление конфигурацией (Ansible, SCCM), а не ручные reg-команды на каждом хосте.
- В сценариях контейнеризации переменные среды лучше задавать средствами контейнера (Dockerfile, переменные окружения runtime), а не менять реестр хоста.
Заключение
Работа с переменными среды в Windows делится на безопасные временные изменения (set) и постоянные изменения через setx или reg. Для системных прав используйте повышенный CMD, перед удалением значений делайте экспорт ветки реестра. Следуйте чеклистам и процедурам отката, чтобы минимизировать риск простоя.
Связанные материалы: Как просмотреть переменные среды в Linux (рекомендации по сопоставлению подходов).
Похожие материалы
Селфи жестами и голосом на Samsung
Добавить контакт на главный экран
Как смотреть ТВ онлайн бесплатно
Ошибка IPTV 401: как исправить шаг за шагом
Как обнаружить скрытые камеры на Android