当cmd通过上下文菜单运行时,PATH变量不同

时间:2015-04-26 13:35:32

标签: windows cmd environment-variables contextmenu path-variables

我花了最后一小时试图找出为什么我的PATH变量没有为我的cmd.exe更新。 现在我发现它确实有更新,但仅限于某些条件......
我通过Win+Break -> Change Settings -> Advanced -> Environment Variables...

更新了它

现在,当我通过Win+R -> cmd -> Enter打开一个新的命令行时,PATH变量会显示我设置的内容 但是当我通过Shift+Rightclick into folder -> Open command window here打开一个新命令行时,PATH变量显示过时的内容。

enter image description here

我的问题:为什么会发生这种情况,我该怎么办呢?

1 个答案:

答案 0 :(得分:4)

正如Hans Passant所指出的,问题是通过资源管理器的上下文菜单运行cmd会将cmd作为子进程生成到资源管理器,导致它从explorer.exe继承环境变量而不是自己获取它们。并且由于进程通常仅在开始时加载环境变量一次并且不监听更改,因此资源管理器将过时的变量继承到cmd实例。

所以解决方案就是简单地重启explorer.exe。