Встановлення змінної системного середовища з пакетного файлу Windows?


195

Чи можна встановити змінну середовища на системному рівні з командного рядка в Windows 7 (або навіть XP для цього питання). Я біжу з піднесеного командного рядка.

Коли я використовую setкоманду ( set name=value), змінна середовища здається дійсною тільки для сеансу командного рядка.

Відповіді:


179

Інструменти підтримки XP (які можна встановити з компакт-диска XP) постачаються з програмою під назвою setx.exe:

C:\Program Files\Support Tools>setx /?

SETX: This program is used to set values in the environment
of the machine or currently logged on user using one of three modes.

1) Command Line Mode: setx variable value [-m]
   Optional Switches:
    -m  Set value in the Machine environment. Default is User.

...
For more information and example use: SETX -i

Я думаю, що Windows 7 насправді поставляється setxяк частина стандартної установки.


7
Windows 7 (можливо, Vista вже) має стандарт setx, з незначною зміною? немає -iпрапора, а лише запущене setx /?відображає всю довідку + приклади
stijn

3
Пам'ятайте, що ви завжди можете перевірити, чи є у вас програма на шляху, ввівши, whereа потім назву програми (тому в цьому випадку where setx.exeпід час тестування цього на полі Server 2008 і Server 2008SP2 я виявив, що в обох випадках він існував у%windir%\System32\setx.exe
aolszowka

2
@stijn - Версія Win7 також офіційно змінила вступ прапорця з нахилу -вперед /. Однак, схоже, -версія все ще працює.
ТЕД

2
Здається, існує обмеження довжини 1024 змісту змісту
setx

Набір setx, наданий засобами підтримки XP SP2, вимагає нахилення вперед /і тире -не працює. setx variable value /m
Кіт

137

Простий приклад того, як встановити JAVA_HOME за допомогою setx.exeкомандного рядка:

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Це встановить змінну середовища "JAVA_HOME" для поточного користувача. Якщо ви хочете встановити змінну для всіх користувачів, вам потрібно скористатися опцією "-m". Ось приклад:

setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Примітка . Ви повинні виконати цю команду як адміністратор.

Примітка . Обов’язково запустіть команду setx з вікна адміністратора командного рядка


7
також зауважте, що деякі інструменти не люблять пробілів у JAVA_HOME, тому варто використовувати Progra~1так: setx /M JAVA_HOME "C:\Progra~1\Java\jdk1.7.0_09"
samel

1
Де це було все моє життя.
Філіп Рего

20

Якщо ви встановите змінну через SETX, ви не можете використовувати цю змінну або її зміни негайно. Ви повинні перезапустити процеси, які хочуть ним скористатися.

Використовуйте таку послідовність, щоб також безпосередньо встановити її в процесі налаштування (мені ідеально підходить для сценаріїв, які виконують деякі речі, які встановлюються після встановлення глобальних змінних) :

SET XYZ=test
SETX XYZ test

Дякую, це зводило мене з розуму! CMD.EXE відчайдушно потребує оновлення, щоб вести себе як звичайна консоль ...!
Сальвадор Валенсія

Я не розумію цього: куди я запускаю ці 2 рядки?
Даніель

1
Ви також можете виконати команду refreshenvпісля використання setx для використання нових змінних.
BrianHVB

@BrianHVB refreshenvне визнано командою. Ви це робите в cmdабо powershell? (EDIT: тестується в обох фактично, не працює ні на одній консолі)
bigp

@bigp ой, ти маєш рацію. Це команда, яка додається при встановленні шоколаду. Я маю шоколад у всіх своїх системах і не усвідомлював, поки не подивився.
BrianHVB

2

Для XP я використовував інструмент (безкоштовний / донорський) під назвою "RAPIDEE" (швидкий редактор середовища), але SETX, безумовно, достатньо для Win 7 (я про це раніше не знав).


2

Системні змінні можна встановити через CMD та реєстр. reg запит "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v PATH

Усі загальновживані коди CMD та системні змінні наведені тут: Встановлення змінних системного середовища Windows за допомогою CMD .

Відкрийте CMD та введіть Set

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

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


1

На випадок, якщо вам потрібно буде видалити змінну, ви можете використовувати SETENV від Vincent Fatica, доступний за адресою http://barnyard.syr.edu/~vefatica . Не зовсім недавно ('98), але все ще працює на Windows 7 x64.


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