用户变量和系统变量有啥区别?

Posted

技术标签:

【中文标题】用户变量和系统变量有啥区别?【英文标题】:What is the difference between user variables and system variables?用户变量和系统变量有什么区别? 【发布时间】:2011-05-27 12:47:54 【问题描述】:

PATHTMP等用户变量与系统变量有什么区别?

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

【问题讨论】:

【参考方案1】:

系统环境变量可供所有用户全局访问。用户环境变量仅特定于当前登录的用户。

【讨论】:

我不小心删除了,会是什么结果?如何退货? @rookie,结果是依赖此环境变量的程序可能会停止工作。至于退货,我不知道是否有可能。您可能需要执行系统还原。【参考方案2】:

环境变量(可以访问任何地方/动态对象)是一种变量。它们有两种类型的系统环境变量和用户环境变量。

具有预定义类型和结构的系统变量。用于系统功能。系统产生的值存储在系统变量中。一般用大写字母表示 示例:HOME,PATH,USER

用户环境变量是用户自己确定的变量,用小写字母表示。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

环境变量在 以下顺序:

    系统变量 autoexec.bat 中定义的变量 用户变量

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

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

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

【讨论】:

这是否暗示系统变量会覆盖用户变量,如果两者都定义了同名变量? 通常not,除了when it comes to PATH。【参考方案5】:

右击我的电脑,进入属性->高级->环境变量...

上面是用户变量,下面是系统变量。在为应用程序创建环境时,这些元素被组合在一起。系统变量对所有用户共享,但用户变量仅适用于您的帐户/个人资料。

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

【讨论】:

我删除了用户,是好是坏,是否可以reotre用户? @rookie:啊……好吧,删除用户的变量通常没有那么糟糕,但这真的取决于。您可以尝试系统还原,它可能会起作用,但我个人不喜欢它,因为可能会出现各种其他问题。您可以尝试转到HKU\.DEFAULT\Environment,然后将那里的所有内容复制到HKCU\Environment。如果幸运的话,这就是您需要恢复的全部内容;如果您不那么幸运,您可能有无法恢复的特定于用户的条目,在这种情况下,您必须使用系统还原。希望这会有所帮助。 为什么系统环境变量没有百分号,而用户变量有?

以上是关于用户变量和系统变量有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

用户变量和系统变量的区别

[C++] 系统环境变量和用户变量同名 如何才能获取系统环境变量

什么叫系统变量

本地 和 实例 变量之间有啥区别

C语言中用const声明全局变量赋初值和不赋初值有何区别?变量存放位置有啥不一样?

PLSQL绑定变量和宿主变量有啥区别