2011-02-26 69 views
11

如果我有一个同名的系统和用户环境变量,它们是如何处理的?级联?用户覆盖系统?并采取这种计数,如果我需要添加一些方法添加到更方便的路径?如何评估环境变量?

回答

12

我认为这篇文章应该回答你的问题:Environment variables in Windows NT

用户环境变量

用户环境变量可以 从控制面板以及查看。 用户可以添加,删除或修改用户字段的用户环境变量 中的环境变量。 这些变量优先于系统环境变量 。用户 路径被追加到系统路径。

+0

该文章是erroneus。尝试删除用户路径的%PATH%。然后,所有需要该路径的东西都不能正常工作。我在想用户变量会覆盖系统变量。所以,如果我有一个空的用户路径变量,我会有很多问题来执行几乎所有的事情。要重新建立值,您可以删除该变量或使用%PATH%重新设置它;字首。你可以使用powershell:set-itemproperty hkcu:\ Environment -name Path -value“%PATH%” – mjsr 2011-02-26 14:33:22

+2

@ Ps1CsCpp,我不认为你说的是​​正确的。该文章指出用户PATH条目附加到系统范围的PATH。对于您的场景,空的用户PATH对提供给进程的PATH没有影响。换句话说,在系统PATH的末尾添加一个空字符串将不起作用。我已经在Windows 8上测试过了。 – 2013-09-03 18:37:03

8

一切飞溅说是正确的。要明确地说明,评估用户路径环境变量的方式与评估其他用户环境变量之间存在差异。如果两者都存在,则常规用户环境变量将完全覆盖具有相同名称的系统,但仅限于为其指定的特定用户。 但是,用户路径变量的处理方式不同。在评估时,将附加到到系统路径变量,而不是完全替换它。我相信飞溅状态,但他们做得如此简洁,我认为它需要拼写。