在批处理文件中设置本地启用延迟扩展


setlocal enabledelayedexpansion
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLMSoftwareJavaSoftJava Development Kit1.6" /v JavaHome') DO set JavaPath=%%B
SETX -m JAVA_HOME "%JavaPath%"
ECHO java__path variable: !JavaPath!
ECHO java__path: %JAVA_HOME%
  • 正在从注册表设置java主页。
  • 值正在设置中。
  • SETX正在工作。

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

我也尝试过enabledelayedexpansion但没有用。如何回声%JAVA_HOME%

在 setx 后面使用另一个集合来重置局部变量。

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

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

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

SETX AFAIAA 将值WRITES到注册表中,但不会将值分配给变量。

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

相关内容

  • 没有找到相关文章

最新更新