Windows 如何不重启更新 [用户环境变量] ?

2019-05-10 00:43:29 +08:00
 orangutan92

我装了个 nvs,想试一下,结果 cmd 里面不存在这个命令。

我看了下,环境变量里面是设置到了用户环境变量,而系统环境变量的 path 是没有的。

我谷歌搜了下,发现只能用 set 和 echo 的方式更新 [系统环境变量] 。而不能更新 [用户环境变量] 。

请问怎么操作呢?

10448 次点击
所在节点    Windows
12 条回复
zwy100e72
2019-05-10 00:45:30 +08:00
如果是命令行程序,只需要新建一个窗口就应该生效了。
生效之后还是需要用 set 验证下;或者 powershell 中访问 Env:\Path 验证下
Trim21
2019-05-10 00:46:26 +08:00
系统属性-高级选项卡-环境变量 (或者我 win10 直接搜索环境变量也可以)
然后上面的是用户变量下面的是系统变量
geelaw
2019-05-10 02:18:37 +08:00
set 改变的是进程的环境变量。

要更新用户的环境变量,你可以用 PowerShell 的 [System.Environment]::SetEnvironmentVariable 或者 sysdm.cpl 里面的编辑对话框( Cortana 搜索 Edit environment variables for your account 即可在不需要 UAC 的情况下打开这个对话框,或者使用命令 rundll32.exe sysdm.cpl,EditEnvironmentVariables )。

当然,你修改了环境变量之后应该 SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, 0, L"Environment", SMTO_ABORTIFHUNG, 5000, NULL) 通知所有的 app 环境变量已经发生了变化。当然我们知道 Windows 的世界里什么乱七八糟的软件都有,并不是所有的软件都会处理这个消息(也不是所有更新环境变量的软件都会发送这个消息),幸运的是 Explorer 会处理该消息,所以你只要打开另一个 cmd 即可获得更新后的环境变量。

为了应付所有书写很差的程序,你只要注销再登录,所有程序就会对环境变量的变化有反应。
agdhole
2019-05-10 03:36:26 +08:00
注销最方便
yidinghe
2019-05-10 07:12:11 +08:00
环境变量修改后本就不需要重启电脑,只要重启进程即可。命令行也是一样,用 setx 更新环境变量后只需关闭命令行再重新打开。
biggray0312
2019-05-10 07:28:43 +08:00
杀死所有并重建 explorer.exe 进程,之后新开的 cmd 里就有新变量了
newmind
2019-05-10 07:38:27 +08:00
cmd 关掉再打开
3CH0
2019-05-10 08:40:21 +08:00
重启 cmd
dinghmcn
2019-05-10 08:49:20 +08:00
重启资源管理器,命令行关了重开
orangutan92
2019-05-10 22:14:41 +08:00
@dinghmcn 试过了不行呢
orangutan92
2019-05-10 22:16:05 +08:00
@zwy100e72 新建没有用,你这个是看系统变量的吧
orangutan92
2019-05-10 22:17:53 +08:00
@geelaw [System.Environment]::SetEnvironmentVariable 没有用,我就是想不注销,然后新建 cmd 生效。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/562699

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX