是否可以在Windows 7(或者甚至是XP)中从命令提示符处在系统级别设置环境变量。我正从一个提升的命令提示符运行。
当我使用set
命令(set name=value
)时,环境变量似乎仅对命令提示符的会话有效。
答案 0 :(得分:166)
XP支持工具(可以从XP CD安装)附带一个名为setx.exe
的程序:
C:\Program Files\Support Tools>setx /?
SETX: This program is used to set values in the environment
of the machine or currently logged on user using one of three modes.
1) Command Line Mode: setx variable value [-m]
Optional Switches:
-m Set value in the Machine environment. Default is User.
...
For more information and example use: SETX -i
我认为Windows 7实际上附带setx
作为标准安装的一部分。
答案 1 :(得分:125)
如何在命令行中使用setx.exe
设置JAVA_HOME的简单示例:
setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"
这将为当前用户设置环境变量“JAVA_HOME”。如果要为所有用户设置变量,则必须使用选项“-m”。这是一个例子:
setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"
注意:您必须以管理员身份执行此命令。
注意:确保从命令行管理员窗口
运行命令 setx答案 2 :(得分:17)
如果通过SETX设置变量,则无法立即使用此变量或其更改。您必须重新启动要使用它的进程。
使用以下序列在设置过程中直接设置(在设置全局变量后执行某些初始化操作的脚本中完美适用于我):
SET XYZ=test
SETX XYZ test
答案 3 :(得分:2)
对于XP,我使用了一个名为“RAPIDEE”(快速环境编辑器)的(免费/捐赠软件)工具,但是对于Win 7来说,SETX肯定是足够的(之前我不知道这个)。
答案 4 :(得分:1)
如果您需要删除变量,可以使用Vincent Fatica的http://barnyard.syr.edu/~vefatica提供的SETENV。 不是最近的(' 98),但仍在使用Windows 7 x64。
答案 5 :(得分:1)
可以通过CMD和注册表设置系统变量 对于前者 reg query" HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v PATH
此处给出了所有常用的CMD代码和系统变量:{{3}}。
打开CMD并输入设置
您将获得系统变量的所有值。
键入设置java 以了解窗口操作系统上安装的java的路径详细信息。
答案 6 :(得分:0)
SetX是大多数情况下所需的命令。尽管可以使用REG或REGEDIT
使用注册表编辑命令,可以避免SetX命令的某些限制-不同的数据类型,名称中包含=
的变量,等等。
@echo off
:: requires admin elevated permissions
::setting system variable
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v MyVar /D MyVal
::expandable variable
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /T REG_EXPAND_SZ /v MyVar /D MyVal
:: does not require admin permissions
::setting user variable
REG ADD "HKEY_CURRENT_USER\Environment" /v =C: /D "C:\\test"
REG是纯注册表客户端,但也可以使用REGEDIT导入数据,尽管它只允许使用硬编码值(或生成临时文件)。此处的示例是一个包含批处理代码和注册表数据的混合文件(应另存为.bat
-请注意,批处理;
在{{1}中用作注释时将被视为定界符而忽略}文件):
.reg