Я не могу найти правильные параметры setx для изменения существующей системной переменной среды. По сути, у меня есть переменная, к которой я хочу добавить «.old».
1 ответ
Как мне добавить к существующей системной переменной среды, используя setx
Просто добавьте дополнительные данные в конец переменной.
Пример:
> set _variable=foo
> echo %_variable%
foo
> setx _variable %_variable%bar
SUCCESS: Specified value was saved.
> echo %_variable%
foo
Обратите внимание, что, похоже, setx
не работает. Это потому, что вы должны запустить новую оболочку cmd
чтобы увидеть изменения:
setx
записывает переменные в основную среду в реестре, изменения вступают в силу только при открытии нового окна команд - они не влияют на текущий сеанс CMD или PowerShell.
Источник - setx
Откройте новую оболочку cmd
чтобы увидеть изменения:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
> echo %_variable%
foobar
И мы можем увидеть правильное значение.
Но я хочу изменить имя переменной. Как я могу это сделать?
Вы не можете изменить имя переменной напрямую, так как оно хранится в качестве значения ключа в реестре.
В качестве обходного пути создайте новую переменную с новым именем, а затем удалите старую.
setx
нет опции удаления, поэтому удалите переменную из реестра.
Пример:
setx _variable.old %_variable%
reg delete HKCU\Environment /F /V _variable
Откройте новую оболочку cmd
чтобы увидеть изменения.
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD
- reg - Чтение, установка или удаление ключей и значений реестра, сохранение и восстановление из.REG-файл
- setx - постоянная установка переменных среды, SETX может использоваться для установки переменных среды для машины (HKLM) или для пользователя, вошедшего в систему (HKCU).