Windows: установка системных переменных из командной строки

Автор: | 14/01/2014
 

windows_logoВ отличии от стандартной команды SET, которая устанавливает переменную только для текущей сессии командной строки, SETX может задавать переменные как системные, так и пользовательские, как на локальной – так и на удалённой машине.

Для примера – рассмотрим вариант использования SETX в batch-скрипте, который должен выполняться при запуске приложения и устанавливать переменные:

 

setx M2_HOME "C:AutoTestOptapache-maven-2.2.1"
setx ENV AUTO1
setx JAVA_HOME "C:AutoTestOptjdk1.6.0_32x64"
setx JAVA_OPTS "-Xmx1024M -Xms512M -XX:MaxPermSize512M"
setx CATALINA_HOME "C:AutoTestOptapache-tomcat-6.0.37_clear_install"
setx PATH "%PATH%;%M2_HOME%bin;%JAVA_HOME%bin;%CATALINA_HOME%bin;C:AutoTestOptSSH"

Запускаем скрипт:

C:AutoTestScripts>setvars.bat

C:AutoTestScripts>setx M2_HOME "C:AutoTestOptapache-maven-2.2.1"

SUCCESS: Specified value was saved.

C:AutoTestScripts>setx ENV AUTO1

SUCCESS: Specified value was saved.

C:AutoTestScripts>setx JAVA_HOME "C:AutoTestOptjdk1.6.0_32x64"

SUCCESS: Specified value was saved.

C:AutoTestScripts>setx JAVA_OPTS "-Xmx1024M -Xms512M -XX:MaxPermSize512M"

SUCCESS: Specified value was saved.

C:AutoTestScripts>setx CATALINA_HOME "C:AutoTestOptapache-tomcat-6.0.37_clear_install"

SUCCESS: Specified value was saved.

C:AutoTestScripts>setx PATH "C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32Wi
ndowsPowerShellv1.0;bin;bin;binC:AutoTestOptSSH;C:AutoTestOptapache-maven-2.2.1bin;C:AutoTestOptjdk1.6.0_32x64bin;C:AutoTestOptapache-tomcat-6.0.37_clear_installbin;C:AutoT
estOptSSH"

SUCCESS: Specified value was saved.

Новые переменные добавляются в реестр системы:

setx_1

По умолчанию переменные устанавливаются как USER variable. Что бы задать системную переменную (SYSTEM) испольузется ключ -m:

C:Usersuser>setx -m TEMPVARIABLE TEMPVARIABLE

SUCCESS: Specified value was saved.

setx_2

Так же, можно задавать переменные на удалённые системы (при наличии логина/пароля).

Больше информации доступно тут>>>.