Установка и получение переменных среды Windows из командной строки?


220

Я хочу установить переменную среды из командной строки, а затем иметь возможность доступа к ней глобально (например, я должен увидеть это, перейдя в System -> Environment Variables).

Когда я использую команду set, она не доступна в новом сеансе cmd.

set NEWVAR=SOMETHING
echo %NEWVAR%

Смежные вопросы:


1
значение переменной setx - затем перезапустите командную строку
Эндрю

Ответы:


252

Чтобы сделать переменную среды доступной глобально, вам нужно установить ее в реестре. Как вы поняли, просто используя:

установить NEWVAR = ЧТО-ТО

вы просто устанавливаете его в текущем пространстве процесса.

Согласно этой странице вы можете использовать setxкоманду:

setx NEWVAR ЧТО-ТО

setxвстроен в Windows 7, но для более старых версий может быть доступен только при установке Windows Resource Kit


4
Обратите внимание, что вам нужно указать квоту, например: setx JAVA_HOME "C:\Program Files\Java\jdk1.7.0_45"будет работать. Но setx JAVA_HOME C:\Program Files\Java\jdk1.7.0_45даст вам синтаксические ошибки
MD. Мохиуддин Ахмед

5
@ MD.MohiuddinAhmed Это потому, что в пути есть пробелы.
ChrisF

36

Мы также можем использовать «setx var variable / M», чтобы установить var на уровень переменной системной среды вместо уровня пользователя.

Примечание. Эта команда должна выполняться от имени администратора.


11
setx program "C:\Program Files" /M

/ M для установки уровня переменной системной среды вместо уровня пользователя, как @Minh Chau answer

Контрольная работа введите описание изображения здесь

Командная строка RESTART (если вы не перезапустите командную строку, переменная окружения не будет работать)

введите описание изображения здесь


Это дублирует другой ответ и не добавляет новый контент. Пожалуйста, не публикуйте ответ, если у вас нет чего-то нового.
DavidPostill

8
@DavidPostill мой ответ новый: нам нужно перезапустить командную строку. Я думаю, что это важно
Фан Ван Линь

2

Вы можете использовать setx env var [/M]как указано выше. Если это не вступает в силу, вы можете использовать refreshenvдля обновления переменных среды. Для этого не нужно перезагружать компьютер, explorer.exe или командную строку.

Изменить: явно refreshenv не приходит естественно с Windows, поэтому вот источник: https://pastebin.com/1fJqA0pT
Сохранить как RefreshEnv.cmd и поместите его в папку, которая включена в переменные среды PATH


1
+1 за упоминание 'refreshenv' - я никогда не сталкивался с этим раньше!
Фрэнсис Нортон

1

Системные переменные могут быть установлены через CMD и реестр. Например. запрос reg "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v PATH

Все обычно используемые коды CMD и системные переменные приведены здесь: Установите системные переменные среды Windows с помощью CMD .

Откройте CMD и введите Set

Вы получите все значения системной переменной.

Введите set java, чтобы узнать подробности пути java, установленного в вашей оконной ОС.


Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос.
DavidPostill

Это близко, хотя. Использование REG ADD может это сделать?
TOOGAM

0

Я хочу добавить, что если вы используете параметр / s с setx для установки переменных среды на удаленном компьютере, на целевом компьютере должна быть запущена служба «Удаленный реестр», иначе вы получите «ОШИБКА: указанная операция не может быть завершена. "

(Я попросил Microsoft обновить их статью TechNet о setx, чтобы включить эту информацию.)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.