Как установить системную переменную среды в Windows XP без использования диалога «Мой компьютер» - PullRequest
7 голосов
/ 01 декабря 2008

Я переключаюсь между различными Java SDK (1.4.2, 1.5.0 и 1.6.0) для различных проектов. Я хотел бы установить переменную среды JAVA_HOME на моем компьютере с Windows XP, не проходя через утомительный Мой компьютер -> Дополнительно -> [Выбрать системную переменную] -> Изменить -> Хорошо -> ОК

Возможно ли это сделать из командной строки, или есть утилита, которая может это сделать?

(обратите внимание, что я не имею в виду стандартную команду "SET" для командного файла - я хочу установить переменную среды "глобально", а не только для срока службы окна консоли).

Ответы [ 3 ]

6 голосов
/ 01 декабря 2008

С http://vlaurie.com/computers2/Articles/environment.htm:

Использование дополнительного инструмента Setx.exe

Не входит в стандартную Windows Настройка XP, но инструмент командной строки называется setx.exe включен в Средства поддержки Windows XP с пакетом обновления 2 . Этот инструмент расширяет набор команда, так что постоянные изменения в переменные среды могут быть сделаны. Например, чтобы добавить папку C: \ New Папка к пути, команда будет быть заданным путем "% PATH%; C: \ New Folder"

1 голос
/ 01 декабря 2008

Вот какой-то VBScript, который я использую для этого:

set args = WScript.Arguments
Set objShell = WScript.CreateObject("WScript.Shell")
Set colSystemEnvVars = objShell.Environment("System")
Set colUserEnvVars = objShell.Environment("User")

' Parse args
select case args.Count
case 0, 1, 2
    help
case 3
    sVariable = args(0)
    sValue = args(1)
    sScope = UCase(args(2))
    sMode = ""
case 4
    sVariable = args(0)
    sValue = args(1)
    sScope = UCase(args(2))
    sMode = UCase(args(3))
end select

select case sScope
    case "S"
        if sMode = "A" then
            sValue = colSystemEnvVars(sVariable) & sValue
        end if
        colSystemEnvVars(sVariable) = sValue
    case "U"
        if sMode = "A" then
            sValue = colUserEnvVars(sVariable) & sValue
        end if
        colUserEnvVars(sVariable) = sValue
    case else
        help
end select

WScript.Quit

'******************************************************************************
Sub help()
    WScript.Echo ""
    WScript.Echo "Create or update an environment variable."
    WScript.Echo ""
    WScript.Echo "usage:"
    WScript.Echo "======"  
    WScript.Echo "cscript SetVar.vbs variable value {S|U} [A]"
    WScript.Echo ""
    WScript.Echo "eg:"
    WScript.Echo "==="     
    WScript.Echo "cscript SetVar.vbs MYVAR 'Hello world' U"
    WScript.Echo "cscript SetVar.vbs PATH 'C:\MyPath' S A"

    WScript.Quit
End Sub   

Область действия может быть 'S'ystem или' U'ser. Последний аргумент, «A», если присутствует, добавляет значение к существующему значению переменной (полезно для добавления директивы к системной переменной PATH).

Переменные будут существовать, но вам придется закрыть их, а затем снова открыть консоль, чтобы использовать их. Я обычно запускаю это из диалогового окна «Выполнить ...», затем открываю консоль.

1 голос
/ 01 декабря 2008

Сервисные инструменты пакета обновления 2 имеет инструмент под названием "setx.exe", который может сделать то, что вы ищете. setx path "% PATH%; C: \ New Folder"

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...