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

我为不同的项目在不同的Java SDK(1.4.2,1.5.0和1.6.0)之间切换。 我想在我的Windows XP机器上设置JAVA_HOME环境variables,而不需要经过繁琐的我的电脑 – >高级 – > [select系统variables] – >编辑 – >确定 – >确定

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

(请注意,我不是指标准batch file“SET”命令 – 我想设置环境variables“全局”,而不仅仅是控制台窗口的生命)。

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

使用附加工具Setx.exe

它不是标准Windows XP安装程序的一部分,但Windows XP Service Pack 2支持工具中包含一个名为setx.exe的命令行工具 。 此工具扩展了set命令,以便可以对环境变量进行永久更改。 例如,要将文件夹C:\ New Folder添加到路径中,该命令将是setx路径“%PATH%; C:\ New Folder”

Service Pack 2支持工具有一个名为“setx.exe”的工具,可以做你正在寻找的东西。 setx路径“%PATH%; C:\新建文件夹”

资源

以下是我用于此的一些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' SA" WScript.Quit End Sub 

范围可以是“S”或“U”。 最后一个参数“A”(如果存在)将该值附加到该变量的现有值(用于将一个directoy添加到PATH系统变量中)。

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