1

Я не могу найти правильные параметры setx для изменения существующей системной переменной среды. По сути, у меня есть переменная, к которой я хочу добавить «.old».

1 ответ1

0

Как мне добавить к существующей системной переменной среды, используя 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).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .