我正在为各种项目切换不同的Java SDK(1.4.2,1.5.0和1.6.0)。我想在我的Windows XP机器上设置JAVA_HOME环境变量,而无需通过繁琐的我的电脑 - >高级 - > [选择系统变量] - >编辑 - >好的 - >确定
是否可以从命令行执行此操作,或者是否有可以执行此操作的实用程序?
(请注意,我不是指标准批处理文件“SET”命令 - 我想设置环境变量“全局”,而不仅仅是控制台窗口的生命周期。)
答案 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”
答案 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系统变量很有用)。
变量将保持不变,但您必须关闭然后重新打开控制台才能使用它们。我通常从“运行...”对话框中运行它,然后打开一个控制台。