我只是花了最后一小时试图找出为什么我的PATHvariables没有为我的cmd.exe更新。 现在我发现它确实更新了,但是只在某些情况下…
我通过Win+Break -> Change Settings -> Advanced -> Environment Variables...
现在当我通过Win+R -> cmd -> Enter
打开一个新的命令行Win+R -> cmd -> Enter
PATHvariables显示我设置的任何东西。
但是当我通过Shift+Rightclick into folder -> Open command window here
打开一个新的命令行Shift+Rightclick into folder -> Open command window here
,PATHvariables显示过时的内容。
我的问题:为什么会发生这种情况,我该怎么办?
正如Hans Passant指出的那样,问题是通过资源管理器的上下文菜单运行cmd会将cmd作为子进程传递给资源管理器,导致它从explorer.exe继承环境变量,而不是自己获取它们。 由于一个进程通常只在开始时加载一次环境变量,并且不会监听更改,因此该资源管理器会将过时的变量继承到cmd实例。
所以解决办法是简单地重新启动explorer.exe。