用户变量和系统变量有什么区别?

198

用户变量(如PATHTMP等)与系统变量有何区别?

我不小心删除了用户变量PATH,我该怎么做?

5个回答

156

右键点击“我的电脑”,然后进入“属性”->“高级”->“环境变量”...

上面是用户变量,下面是系统变量。在创建应用程序的环境时,这两部分会合并在一起。系统变量对所有用户共享,但用户变量仅适用于您的帐户/个人资料。

如果您不小心删除了系统变量,请打开注册表编辑器,然后转到 HKLM\ControlSet002\Control\Session Manager\Environment(假设您当前的控制集不是ControlSet002)。然后找到“Path”值,并将数据复制到HKLM\CurrentControlSet\Control\Session Manager\Environment的“Path”值中。您可能需要重新启动计算机。(希望这些备份不是太久远,且包含您所需的信息。)


4
我删除了用户,这是好事还是坏事?能否恢复这些用户? - rookie
3
@rookie: 啊…好吧,通常情况下删除用户变量不会太严重,但这要看具体情况。你可以尝试系统还原,可能会有帮助,但我个人不太喜欢用它,因为可能会出现其他问题。你可以尝试转到HKU\.DEFAULT\Environment,并将所有内容复制到HKCU\Environment。如果幸运的话,这就足以还原;如果不那么幸运,你可能有一些无法恢复的用户特定条目,这种情况下你就必须使用系统还原。希望这能有所帮助。 - user541686
为什么系统环境变量没有百分号而用户变量有百分号呢? - Millemila

101

环境变量按以下顺序“评估”(即被归属):

  1. 系统变量
  2. 在autoexec.bat中定义的变量
  3. 用户变量

每个进程都有一个环境块,其中包含一组环境变量及其值。有两种类型的环境变量:用户环境变量(为每个用户设置)和系统环境变量(为所有人设置)。默认情况下,子进程继承其父进程的环境变量。

由命令处理器启动的程序会继承命令处理器的环境变量。

环境变量指定文件的搜索路径、临时文件的目录、应用程序特定选项以及其他类似信息。系统为每个用户维护一个环境块和一个计算机环境块。计算机环境块代表该特定计算机所有用户的环境变量。用户的环境块代表系统为该特定用户维护的环境变量,包括一组系统环境变量。


7
这是否意味着如果系统变量和用户变量都定义了相同名称的变量,那么系统变量会覆盖用户变量? - Casey Kuball
10
通常情况下,除了 PATH 路径时会有例外。 - Treefish Zhang

57

系统环境变量是所有用户都可以全局访问的。
用户环境变量仅适用于当前已登录的用户。


我不小心删除了它,会有什么后果?我该如何恢复它? - rookie
@新手,结果是依赖这个环境变量的程序可能会停止工作。至于恢复它是否可能,我不确定。您可能需要执行系统还原。 - Darin Dimitrov

2

只需在用户中重新创建路径变量。进入用户变量,突出显示路径,然后新建,输入值。查看具有相同版本的Windows的另一台计算机。 通常在Windows 10中:路径 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;


1
环境变量(可以在任何地方访问/动态对象)是一种变量类型。它们分为系统环境变量和用户环境变量两种。
系统变量具有预定义的类型和结构,用于系统功能。系统生成的值存储在系统变量中。通常使用大写字母表示。
例如:HOME、PATH、USER。
用户环境变量是由用户确定的变量,使用小写字母表示。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接