2010-09-27 1 views
157

Можно ли установить переменную среды на системном уровне из командной строки в Windows 7 (или даже XP, если на то пошло). Я запускаюсь из командной строки с повышенными правами.Настройка переменной системной среды из командного файла Windows?

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

ответ

151

Инструменты XP поддержки (которые могут быть установлены с вашего XP CD) поставляется с программой под названием 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 уже) имеет установленный стандарт, с незначительными изменениями? нет флага '-i', и только запущенный' setx /? 'отображает все справки + примеры – stijn

+3

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

+2

@stijn - версия Win7 также официально изменил флаг-интродуктор с '-' на косую черту'/'. Однако похоже, что версия' -' по-прежнему работает. –

106

Простой пример, как установить 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' так: \t 'setx/M JAVA_HOME" C: \ Progra ~ 1 \ Java \ jdk1.7.0_09 "' – samael

+0

Где это было всю мою жизнь. –

2

Для XP, я использовал (бесплатно/DonateWare) инструмент под названием "RapidEE" (Rapid Environment Editor), но SETX определенно достаточно для Win 7 (об этом я раньше не знал).

1

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

+4

setx позволяет также удалить значение пустым –

13

Если вы установили переменную через SETX, вы не можете использовать эту переменную или ее изменения немедленно. Вам необходимо перезапустить процессы, которые хотят его использовать.

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

SET XYZ=test 
SETX XYZ test 
1

Системные переменные могут быть установленный через CMD и реестр Например, рег запрос "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ окружающей среды"/v PATH

Все часто используемые CMD коды и системные переменные приведены здесь: Set Windows system environment variables using CMD.

Открыть CMD и тип Набор

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

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

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

  • Нет связанных вопросов^_^