Windows 系统变量和环境变量有什么区别?

the*_*der 5 windows path environment-variables

在 Windows 上定义环境变量有两种方法。我见过使用“系统”变量和仅“环境”变量的示例。使用一种方法与另一种方法有什么区别和后果?

Han*_*ant 5

像 %SystemRoot% 和 %WinDir% 这样的变量只是普通的环境变量。唯一的区别是它们的值来自哪里:

  • 系统环境变量是预定义的并由安装程序确定。 这篇 Technet 文章“在 Cmd.exe 中使用环境变量”部分列出了它们的名称,请注意它已经过时并且不涵盖 64 位特定变量
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 注册表项中定义的可配置系统范围环境变量,对任何用户均有效
  • HKEY_CURRENT_USER\Environment 注册表项中定义的可配置用户特定环境变量。

有效的过程环境是这三个来源的合并。

后两个注册表项可以通过控制面板 + 系统小程序、环境变量按钮进行编辑。请注意,使更改生效可能需要注销+登录,因此该进程将从环境的新副本开始,而不是从其父进程继承的陈旧副本。