V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
giant
V2EX  ›  Windows

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

  •  
  •   giant · 2023-03-06 10:10:48 +08:00 · 835 次点击
    这是一个创建于 628 天前的主题,其中的信息可能已经有所发展或是发生改变。
    系统变量配置如下:
    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 的机子上都出现了,网上也搜不出个所以然。
    有老哥知道为什么会出现这个问题吗?
    1 条回复    2023-03-06 11:03:45 +08:00
    ysc3839
        1
    ysc3839  
       2023-03-06 11:03:45 +08:00 via Android   ❤️ 1
    Windows 的环境变量是存在注册表里的,而注册表有个特性是展开环境变量,需要项目类型是 REG_EXPAND_SZ 时才会展开,你手动创建的环境变量在注册表中的类型不是 REG_EXPAND_SZ ,所以不会展开。
    另外需要注意的是,REG_EXPAND_SZ 不代表注册表会自动展开,这个类型只是告诉读取的应用程序需要进行展开,程序后续怎么处理是程序的事。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2834 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:29 · PVG 16:29 · LAX 00:29 · JFK 03:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.