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

PATH variable different when cmd was run through the context menu

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

更新了它

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

我的问题:为什么会这样,我该怎么办?

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

因此解决方案是简单地重新启动 explorer.exe。