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

For*_*vin 6 windows cmd path-variables contextmenu environment-variables

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

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

在此输入图像描述

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

For*_*vin 6

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

因此,解决方案就是重新启动 explorer.exe。