Мне нужно установить переменные среды на разных компьютерах с Windows, но я не хочу, чтобы меня беспокоили их изменение вручную, открыв экран свойств «Мой компьютер».
Я хочу сделать это из командной строки с помощью командного файла. Насколько я понимаю, использование set изменит только переменную для процессов, которые я буду вызывать в командном окне.
Я хочу установить его определенно, поэтому позже, при запуске нового процесса, он будет использовать те новые настройки, которые я установил. Есть ли способ сделать это из командной строки?
Ответы:
Используйте команду SETX (обратите внимание на суффикс «x»), чтобы установить переменные, которые сохраняются после закрытия окна cmd.
Например, чтобы установить переменную env "foo" со значением "bar":
Хотя стоит прочитать «примечания», которые отображаются, если вы напечатаете usage (
setx /?
), в частности:В PowerShell команда [Environment] :: SetEnvironmentVariable .
источник
[Environment]::SetEnvironmentVariable('PATH', "Whatever you need it to be", "Machine")
см. msdn.microsoft.com/en-us/library/96xafkes(v=vs.110).aspxВ документации MSDN для переменных среды указано, что делать:
Для этого вам, конечно же, потребуются права администратора. Я не знаю способа транслировать сообщение Windows из пакета Windows, поэтому вам нужно написать небольшую программу для этого.
источник
setx
согласно ниже?источник
setx
(и без возможности его установки). Простое использование (в моем случае):wsh.Environment("user").Item("myVar") = "my value"
Действительно, значение SET TEST_VARIABLE = работает только для текущего процесса, поэтому
SETX
является обязательным. Быстрый пример постоянного хранения переменной среды на уровне пользователя.SETX TEST_VARIABLE etc
. Еще не применено (echo %TEST_VARIABLE%
показывает%TEST_VARIABLE%
,echo %TEST_VARIABLE%
показываетetc
.etc
.источник
источник