Налаштування та отримання змінних середовища Windows у командному рядку?


220

Я хочу встановити змінну середовища з командного рядка, а потім мати змогу отримати доступ до неї глобально (наприклад, я повинен бачити це, перейшовши до System -> Variables Environment).

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

set NEWVAR=SOMETHING
echo %NEWVAR%

Пов’язані запитання:


1
значення змінної setx - потім перезавантажте командний рядок
Андрій

Відповіді:


252

Щоб зробити змінну середовища доступною в усьому світі, потрібно встановити її в реєстрі. Як ви зрозуміли, просто використовуючи:

встановити NEWVAR = НЕЩО

ви просто встановлюєте його в поточному просторі процесу.

Відповідно до цієї сторінки ви можете використовувати setxкоманду:

setx NEWVAR SOMETHING

setxвбудований в Windows 7, але для старих версій він може бути доступний, лише якщо встановити комплект ресурсів Windows


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 varia / M" для встановлення var на змінний рівень системного середовища замість рівня користувача.

Примітка. Ця команда повинна бути запущена як адміністратор.


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

/ M для встановленого змінного рівня середовищного середовища замість рівня користувача, як-от відповідь @Minh Chau

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

Командний рядок 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

Ви отримаєте всі значення системної змінної.

Введіть набір java, щоб знати деталі шляху Java, встановлені у вашій віконній ОС.


Будь ласка, прочитайте запитання ще раз уважно. Ваша відповідь не відповідає на початкове запитання.
DavidPostill

Це вже близько. Використання REG ADD може цього досягти?
TOOGAM

0

Хочу додати, що якщо ви використовуєте параметр / s з setx для встановлення змінних середовища на віддаленому комп'ютері, послуга "Віддалений реєстр" повинна працювати на цільовій машині, інакше ви отримаєте "ПОМИЛКА: вказана операція не може бути завершена. "

(Я попросив Microsoft оновити свою статтю TechNet про setx, щоб включити цю інформацію.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.