Windows 系统变量 path 中的定义的变量指向变量时无法正确解析

2023-03-06 10:10:48 +08:00
 giant
系统变量配置如下:
path 中添加%JAVA_HOME%\bin ;
JAVA_JOME=%JAVA_HOME_ORACLE_8%;
JAVA_HOME_ORACLE_8=D:\java\xxx.
echo %path%中的%JAVA_HOME%可以正常解析为 D:\java\xxx 。

但是同样在系统变量中配置:
path 中添加%P_HOME%;
P_HOME=%P_HOME_37%
P_HOME_37=D:\p\xxx
echo %path%中的%P_HOME%就没有被正常解析,还是%P_HOME%。
path 中的%P_HOME%改为%P_HOME_37%时,就会被正确解析为 D:\p\xxx

这样的问题在 2 台 win11 的机子上都出现了,网上也搜不出个所以然。
有老哥知道为什么会出现这个问题吗?
762 次点击
所在节点    Windows
1 条回复
ysc3839
2023-03-06 11:03:45 +08:00
Windows 的环境变量是存在注册表里的,而注册表有个特性是展开环境变量,需要项目类型是 REG_EXPAND_SZ 时才会展开,你手动创建的环境变量在注册表中的类型不是 REG_EXPAND_SZ ,所以不会展开。
另外需要注意的是,REG_EXPAND_SZ 不代表注册表会自动展开,这个类型只是告诉读取的应用程序需要进行展开,程序后续怎么处理是程序的事。

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

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

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

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

© 2021 V2EX