全局与用户 Windows 环境变量

全局与用户 Windows 环境变量

我需要了解全局变量和用户变量在 Windows 中的工作方式。

情况1: 如果在用户全球的部分的行为是什么?例如,我在用户全球的部分,我只看到全球的值;有没有办法“追加”用户路径至全球的小路?

案例 2: 变量定义在用户部分未“解决”全球的部分。如果我使用SET命令,我会看到所有已定义变量的列表(用户全球的),但‘交叉引用’尚未解决。

例如

在用户部分我定义:

VAR1=test-user 

在全局部分我定义:

VAR2=%VAR1%-more;%VAR3%-more
VAR3=test-global 

我看到的是SET

...
VAR1=test-user
VAR2=%VAR1%-more;test-global-more
VAR3=test-global
...

我在 Windows 7 x64 机器上。

因此,基于上述测试,我的结论是:

  • 全局变量覆盖用户变量(如果名称相同则只有全局有效)
  • 用户变量和全局变量之间不允许交叉引用

我对吗?

答案1

你的结论不太正确,至少根据我的测试。

  • 用户变量可以引用系统(全局)变量。

    系统变量不能引用用户变量。

  • 用户变量将覆盖系统(全局)变量。

    只是在默认集合中,TEMP(和TMP)被定义为用户变量,%USERPROFILE%\AppData\Local\Temp同时被定义为系统变量C:\Windows\TEMP

    PATH似乎是一种特殊情况,其中用户变量PATH(如果定义)总是附加到系统变量而不是覆盖它。

相关内容