如何在不使用“我的电脑”对话框的情况下在Windows XP中设置系统环境变量

时间:2008-12-01 19:12:33

标签: windows

我正在为各种项目切换不同的Java SDK(1.4.2,1.5.0和1.6.0)。我想在我的Windows XP机器上设置JAVA_HOME环境变量,而无需通过繁琐的我的电脑 - >高级 - > [选择系统变量] - >编辑 - >好的 - >确定

是否可以从命令行执行此操作,或者是否有可以执行此操作的实用程序?

(请注意,我不是指标准批处理文件“SET”命令 - 我想设置环境变量“全局”,而不仅仅是控制台窗口的生命周期。)

3 个答案:

答案 0 :(得分:6)

来自http://vlaurie.com/computers2/Articles/environment.htm

  

使用附加工具Setx.exe

     

它不是标准Windows的一部分   XP安装程序,但命令行工具   调用setx.exe包含在   Windows XP Service Pack 2 Support Tools。此工具扩展了该集   命令使永久性的变化   可以制作环境变量。   例如,要添加文件夹C:\ New   文件夹到路径,命令会   是setx路径“%PATH%; C:\ New Folder”

答案 1 :(得分:1)

Service Pack 2 Support Tools有一个名为“setx.exe”的工具可以完成你想要的工作。 setx路径“%PATH%; C:\ New Folder”

Source

答案 2 :(得分:1)

以下是我使用的一些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'系统或'U'ser。最后一个参数'A'(如果存在)将该值附加到变量的现有值(对于将一个directoy添加到PATH系统变量很有用)。

变量将保持不变,但您必须关闭然后重新打开控制台才能使用它们。我通常从“运行...”对话框中运行它,然后打开一个控制台。