2010-09-27 167 views
157

是否可以在Windows 7的命令提示符(甚至是XP)中的系统级别设置环境变量。我从提升的命令提示符下运行。从Windows批处理文件设置系统环境变量?

当我使用set命令(set name=value)时,环境变量似乎只对命令提示符的会话有效。

回答

151

XP的支持工具(可从您的XP光盘安装)配备了名为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作为标准安装的一部分。对于如何在命令行与setx.exe设置JAVA_HOME

+7

Windows 7(也许Vista已经)有setx标准,有一个小的改变?没有'-i'标志,只是运行'setx /?'显示所有帮助+示例 – stijn 2013-07-13 07:12:14

+3

请记住,您可以随时通过键入“where”和程序的名称来检查您的路径是否有此程序所以在这种情况下'setx.exe'在Server 2008和Server 2008SP2盒子上测试,我发现这两种情况都存在'%windir%\ System32 \ setx.exe' – aolszowka 2013-09-20 16:34:59

+2

@stijn - Win7版本也正式将标志介绍人从'-'改为正斜杠'/',但看起来像'-'版本仍然有效 – 2013-11-06 14:35:56

106

简单的例子:

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" 

注意:你必须以管理员身份才能执行此命令。

注意:确保从命令行管理窗口

+7

也注意到有些工具不喜欢JAVA_HOME中的空格,因此值得使用'Progra〜1': \t'setx/M JAVA_HOME“C:\ Progra〜1 \ Java \ jdk1.7.0_09”' – samael 2013-07-31 10:01:01

+0

这是我的一生。 – 2017-06-28 17:07:11

2

对于XP,我用所谓的“RAPIDEE”(快速环境编辑器(免费/ donateware)工具运行命令SETX ),但是对于Win 7来说,SETX绝对是足够的(我以前不知道这一点)。

1

为防万一您需要删除变量,您可以使用Vincent Fatica的SETENV,网址为http://barnyard.syr.edu/~vefatica。 不是最近('98),但仍然在Windows 7 x64上工作。

+4

setx还允许您通过将该值设置为空白来删除 – 2015-02-10 02:48:40

13

如果通过SETX设置变量,则不能立即使用此变量或其更改。您必须重新启动想要使用它的进程。

使用下面的顺序直接设置它在制定过程太(对我的作品完美地,设置全局变量后做一些初始化的东西脚本)

SET XYZ=test 
SETX XYZ test 
1

系统变量可以通过CMD和注册表设置 例如。 REG查询 “HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \控制\会话管理\环境”/ V PATH

所有常用CMD代码和系统变量在这里给出:Set Windows system environment variables using CMD

打开CMD和类型设置

您将获得系统变量的所有值。

类型设置java了解您的窗口操作系统上安装的Java的路径细节。

相关问题