And*_*oni 6 windows environment-variables
我需要了解全局变量与用户变量在 Windows 中的工作原理。
案例 1: 如果在用户和全局部分定义了相同的变量,则行为是什么?例如,我在用户和全局部分定义了一个 %PATH% 变量,我只看到全局值;有没有办法将用户路径“附加”到全局路径?
情况 2:用户部分中
定义的变量在全局部分中未“解析” 。如果我使用SET命令,我会看到所有已定义变量(user和global)的列表,但未解析“交叉引用”。
例如
在用户部分我定义:
VAR1=test-user
Run Code Online (Sandbox Code Playgroud)
在全局部分我定义:
VAR2=%VAR1%-more;%VAR3%-more
VAR3=test-global
Run Code Online (Sandbox Code Playgroud)
以SET我看:
...
VAR1=test-user
VAR2=%VAR1%-more;test-global-more
VAR3=test-global
...
Run Code Online (Sandbox Code Playgroud)
我在 Windows 7 x64 机器上。
因此,基于上述测试,我的结论是:
我对吗?
你的结论并不完全正确,至少根据我的测试。
用户变量可以引用系统(全局)变量。
系统变量不能引用用户变量。
用户变量将覆盖系统(全局)变量。
只是在默认设置中,TEMP(和TMP) 被定义为用户变量,%USERPROFILE%\AppData\Local\Temp同时作为系统变量定义为C:\Windows\TEMP。
PATH似乎是一种特殊情况,其中用户变量PATH(如果已定义)始终附加到系统变量而不是覆盖它。