为什么“Path”Windows环境变量和命令行不同?

时间:2015-01-31 21:06:51

标签: windows batch-file cmd

在我的PC上,运行Windows XP 5.1.2600,

“我的电脑”> “属性”> “高级”> “环境变量”> “路径”

我得到一个字符串,但是在批处理文件中,或者通过

直接从提示符输入

echo%path%

我得到了另一个。

请有人解释是什么让他们与众不同以及如何解决问题,将“DOS路径”设置为“Windows-PATH”的相同值?

5 个答案:

答案 0 :(得分:3)

两件事:

  1. 正如其他人所提到的,PATH的完整值是用户的PATH变量和系统的PATH变量的组合。

  2. 如果更改环境变量(包括PATH),则任何已运行的进程(包括命令提示符)都将继续使用旧的环境变量值。您需要重新启动这些流程以获取您所做的任何更改。

答案 1 :(得分:2)

您可能看到的差异在于,当创建新进程时,其默认环境包含通过将系统变量与用户变量合并而生成的PATH变量。

至于如何解决问题",没有什么可以解决的。系统的行为与设计相同。

答案 2 :(得分:2)

您在命令行上看到的PATH环境变量的值(与" DOS" btw无关)是系统范围PATH变量的总和以及用户特定的PATH变量。

如果从控制面板中打开包含系统变量的对话框,则上半部分包含用户特定的环境变量。下半部分包含系统变量。

如果您为用户设置PATH变量,例如c:\foo,系统路径为c:\Windows\System32,当您在命令行上执行c:\Windows\System32;c:\foo时,您会看到ECHO %PATH%

答案 3 :(得分:0)

我遇到的问题与我通过

获得的系统变量有关
  

“我的电脑”> “属性”> “高级”> “环境变量”>   “路径”

与通过命令行界面通过

显示的那个不同
  

ECHO%PATH%

对此的修复基本上是等待更改发生,并且可以通过重新启动cmd和资源管理器来更快地完成此操作。为此,您只需结束Explorer和CMD的任务,然后启动新任务或直接重新启动它。

enter image description here

同样也应该为CMD做同样的事。

答案 4 :(得分:0)

Windows注册表可以保存在通过控制面板看到的PATH环境变量版本中未显示的路径条目。 (为什么,我不知道)。

差异意味着某些内容(可能是安装脚本)对注册表进行了更改。

要查看或更改本地用户的路径变量,请查看HKEY_CURRENT_USER\Environment键。

要查看系统路径,请查看HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment