简谈 Windows 的环境变量以及用户变量与系统变量的区别

简谈 Windows 的环境变量以及用户变量与系统变量的区别
Mus什么是环境变量
官话这里就不讲了,网上一搜一大把,这里讲讲我的理解。
环境变量说白了就是系统用来存储配置信息的变量,在需要的时候,系统或程序会读取到这些变量的值以供使用。
例如:在 CMD 中运行程序的时候会优先找当前目录,如果没有找到,则会去 Path 环境变量中查找,如果还没有则会提示你(’xxx’不是内部或外部命令,也不是可运行的程序或批处理文件)。
注:关于 Path 变量,在下面有详细的解释 点我跳转。
环境变量的分类
环境变量可以分为用户变量与系统变量两类。它们在注册表中都有其对应的位置:
- 用户变量所在位置:
HKEY_CURRENT_USER\Environment - 系统变量所在位置:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment
用户变量与系统变量的区别
- 用户变量对当前用户有效
- 系统变量对所有用户有效
所以一般为了安全起见,我们的环境变量应该设置在用户变量中,而非系统变量。不过如果你能够确定当前电脑的使用只有你一个人,且没有第二个用户的情况下,那么此时在哪里设置其实都无所谓了。
用户变量与系统变量的优先级
- 对于普通变量,用户变量的优先级高于系统变量
- 对于 Path 变量,系统变量的优先级高于用户变量
普通变量
当用户变量和系统变量有同名变量时,系统会优先使用用户变量中的值。
例如:用户变量与系统变量都存在一个名为 aaa 的变量时,假设此时用户变量中的值为 1,系统变量中的值为 2,此时输出该变量。
1 | C:\Users\yiimus>echo %aaa% |
Path 变量
在 Windows 中环境变量是不区分大小写的,即 Path、path、PATH 均表示同一个变量。
Path 表示指定可执行文件的搜索路径。
默认情况下用户变量与系统变量都会有 Path 变量的存在,在 CMD 中输出 Path 变量时会发现,输出的值是系统变量中的值与用户变量中的值的组合,且用户变量的 Path 值是跟在系统变量 Path 值后面的。
那么在 Windows 系统在执行用户命令时,若用户未给出文件的绝对路径,则首先在当前目录下寻找相应的可执行文件。然后在系统变量的 Path 路径中查找,如果找不到,再到用户变量的 Path 路径中查找。
评论
匿名评论隐私政策



