explorer 启动时读取变量环境,cmd 是 explorer 的子进程,继承了父进程 explorer 的变量环境,退出 cmd 后,子进程的变量环境被抛弃,所以其实系统变量和用户变量是一回事,只是继承和被继承的区别。
在 cmd 中修改变量环境是局限于子进程中的,如果要让它影响 explorer 的变量环境,一个途径是发送消息给窗口(比如 wmic 永久修改环境变量),一个途径是修改注册表影响 explorer 下次启动时所加载的变量环境,还有一个途径是把 explorer 干掉再在 cmd 中启动,使之成为 cmd 的子进程,也就继承了 cmd 当前的变量环境...