Установка переменной среды без перезапуска в Windows - PullRequest
0 голосов
/ 28 сентября 2010

Я использую систему Windows 7, в которой я хочу установить системную переменную среды и увидеть ее в последующих командных приглашениях, которые я запускаю.

Когда я устанавливаю системную переменную среды, используя " setx ", все работает нормально, но, учитывая, что я хочу использовать один и тот же код сценария для XP и Windows 7, я не могу сделать это на XP, потому что XP этого не делает приходят по умолчанию с setx.

Поэтому я должен прибегнуть к использованию WMI для установки переменных среды:

Я использую этот следующий код для установки переменной:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set objVariable = objWMIService.Get("Win32_Environment").SpawnInstance_

objVariable.Name = "TestKey"
objVariable.UserName = "<System>"
objVariable.VariableValue = "TestValue"
objVariable.Put_

Но теперь, когда я запускаю новую командную строку, переменная среды не вступает в силу; Однако, если я перезагружаю систему, она вступает в силу; И когда я захожу в «Мой компьютер»> «Свойства»> «Дополнительные параметры системы»> «Переменные среды», я вижу значение «TestKey»; И когда я нажимаю кнопку «ОК», тут же запускаю новую командную строку, значение «TestKey» кажется волшебным образом;

Можно ли как-нибудь заставить системную переменную среды отображаться в последующих командных приглашениях, не прибегая к нажатию кнопки ОК в окне переменных среды (в свойствах системы) или перезагрузке компьютера?

1 Ответ

1 голос
/ 20 мая 2011

Вы можете установить средства поддержки Windows XP с пакетом обновления 2 (SP2), которые включают setx.Мы использовали его в течение нескольких лет, чтобы легко переключать среды разработки между различными уровнями Java, Weblogic, JBoss и т. Д., Поскольку мы поддерживаем много разных версий.

...