为什么不重新启动cmd 中环境变量就不会更新?

为什么不重新启动cmd 中环境变量就不会更新?

CMD 命令:

setx SOMEVARIABLE "newpath" /M
setx SOMEVARIABLE "%SOMEVARIABLE%;newpath2" /M

预期输出 ECHO %SOMEVARIABLE%

newpath;newpath2

实际产量:

%SOMEVARIABLE%

存储的实际值(来自系统属性->环境变量 GUI):

%SOMEVARIABLE%;newpath2

我获得预期输出的唯一方法是,每次修改环境变量时重新启动命令提示符。我使用此命令在同一过程中多次自动附加环境变量值。

  1. 为什么不重新启动cmd 中环境变量就不会更新?
  2. 是否可以在不重新启动命令提示符的情况下获取 %SOMEVARIABLE% 的更新值?

答案1

问题是setx修改全球环境,而不是本地环境。因此,您必须重新启动命令提示符才能使更改生效。

您有两个选择:

  • 使用修改全局环境的其他工具当地环境
  • 创建一个执行这两项操作的批处理文件并使用该文件:

    ::setenv.bat
    @echo off
    set %1=%2
    setx %1 %2 %3
    

相关内容