从Windows批处理文件设置系统环境变量?

San*_*osh 184 windows cmd batch-file environment-variables

是否可以在Windows 7(或者甚至是XP)中从命令提示符处在系统级别设置环境变量.我从一个提升的命令提示符运行.

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

Hug*_*len 172

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
Run Code Online (Sandbox Code Playgroud)

我认为Windows 7实际上是setx标准安装的一部分.

  • Windows 7(可能已经是Vista)有setx标准,只有一个小小的变化?没有`-i`标志,只运行`setx /?`显示所有帮助+示例 (7认同)
  • 记住,你可以随时检查,看看你有你的路径上这个节目用`where`然后程序(的名称,以便在这种情况下`那里setx.exe`在测试这个在Server 2008和服务器2008SP2箱我发现在两种情况下它都存在于`%windir%\ System32\setx.exe`中 (3认同)
  • @stijn - Win7版本也正式将标志导入器从`-`改为正斜杠`/`.但是,看起来`-`版本仍然有效. (2认同)
  • setx变量内容似乎有1024个长度限制 (2认同)

Min*_*nas 129

有关如何setx.exe在命令行中设置JAVA_HOME的简单示例:

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"
Run Code Online (Sandbox Code Playgroud)

这将为当前用户设置环境变量"JAVA_HOME".如果要为所有用户设置变量,则必须使用选项"-m".这是一个例子:

setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"
Run Code Online (Sandbox Code Playgroud)

注意:您必须以管理员身份执行此命令.

:确保运行命令SETX从一个命令行管理窗口

  • 另请注意,有些工具不喜欢JAVA_HOME中的空格,因此值得使用`Progra~1`:`setx/M JAVA_HOME"C:\ Progra~1\Java\jdk1.7.0_09"` (7认同)

Ant*_* F. 19

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

使用以下顺序在设置过程中直接设置它(在设置全局变量后执行某些初始化操作的脚本中完美地适用于我):

SET XYZ=test
SETX XYZ test
Run Code Online (Sandbox Code Playgroud)