【问题标题】:setlocal enabledelayedexpansion in batch file批处理文件中的 setlocal enabledelayedexpansion
【发布时间】:2013-07-22 06:27:06
【问题描述】:
setlocal enabledelayedexpansion
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Development Kit\1.6" /v JavaHome') DO set JavaPath=%%B
SETX -m JAVA_HOME "%JavaPath%"
ECHO java__path variable: !JavaPath!
ECHO java__path: %JAVA_HOME%
  • 我正在从注册表设置 java home。
  • 值正在设置中。
  • SETX 正在工作。

当我尝试使用!JavaPath! 回显时,我得到了价值,而当我尝试回显%JAVA_HOME% 时,该值为空。

我也试过enabledelayedexpansion,但没用。如何回显%JAVA_HOME%??

【问题讨论】:

    标签: windows batch-file cmd command


    【解决方案1】:

    跟随 setx 与另一个集合重置局部变量。

    SETX -m JAVA_HOME "%JavaPath%"
    SET "JAVA_HOME=%JavaPath%"
    

    如果这些都在另一个循环中,则使用 !variable!语法。

    【讨论】:

      【解决方案2】:

      您似乎是根据注册表中JavaHome(无下划线)的值设置JavaPath

      SETXAFAIAA WRITES 将值写入注册表但不将值分配给变量。

      注册表中JAVA_HOME 中的值可用于未来会话,但不能用于已建立的会话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-14
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 2013-03-07
        • 2021-03-03
        相关资源
        最近更新 更多