AHK写入系统变量不生效的一个坑
在ahk编写脚本时遇到增加系统变量时,增加后可在我的电脑-右键属性-高级系统设置-环境变量中查看,但是该变量却不能在CMD里调用
我写的是一个JAVA开发环境变量自动写入的小工具
执行如下操作:写入键值对:JAVA_HOME,C:Program FilesJavajdk1.8.0_60
再在Path路径写入相对路径调用:
;%JAVA_HOME%bin;%JAVA_HOME%jrebin;
最后进行广播(即使之立即生效):
EnvUpdate
或者是向顶级窗口传递消息:
SendMessage, 0x1A, 0,"Environment",, ahk_id 0xFFFF
这样的执行是没办法生效的,需要重启电脑或者进入系统环境变量点确定才生效。
问题在于最后的广播广播的是Path键,而JAVA_HOME键仍然没被广播,导致Path键是无效的。
这里可以验证:把**在Path路径写入相对路径调用:
;**%JAVA_HOME%bin;%JAVA_HOME%jrebin;
改为:;
C:Program FilesJavajdk1.8.0_60bin;C:Program FilesJavajdk1.8.0_60jrebin;
最后执行
EnvUpdate
发现这样是有效的。问题验证完毕,解决方法就是再执行了创建JAVA_HOME键之后执行一次EnvUpdate,使得这个环境变量先于Path广播,这样后面Path就能获取到已广播的JAVA_HOME
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭