bat:设置高级环境变量并不重启生效

设置高级变量方法:

::MAVENPATH为将要添加的系统变量
SET  MAVENPATH=D:\JDK\apache-maven-3.6.3\bin
wmic ENVIRONMENT where "name='path' and username='<system>'"  set VariableValue="%path%;%MAVENPATH%"

不能用

::该命令只会对当前cmd生效,而不会在系统环境变量添加

set PATH=C: 

是对副本的修改却会引发Windows环境变量的刷新,这正是我们想要的!

 以修改环境变量“PATH”为例,执行第一个脚本后,进入DOS命令提示符,输入:set PATH=C: ,关闭DOS窗口。再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”->“属性”->“高级”->“环境变量”中设置的 PATH 值已经生效。当然也可以通过脚本来实现

这里要理解的是,一个程序启动时,环境变量被复制到该程序所在的环境中,在该程序执行过程中不会被除该程序以外的其他程序所改变。也就是说,假设我们启动了一个cmd程序,然后通过控制面板修改了环境变量设置,但是已经启动了的cmd所拥有的环境变量并不会被改变。如果我们在修改环境变量之后启动cmd程序,则该程序将拥有新的环境变量。
那么结论就很明显了:修改环境变量之后,如果受影响的是应用程序,那么只要简单地重新启动此应用程序,环境变量的修改就会反映到该程序中,而不必重新启动计算机;但是,如果受影响的是系统服务,就必须重新启动才能将环境变量的修改反映到系统服务中(因为没有办法在不重启计算机的情况下重新启动系统服务管理器)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章