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%
当我使用!JavaPath!
尝试使用echo时,我获得了值,当我尝试使用echo %JAVA_HOME%
时,该值为空。
我尝试使用enabledelayedexpansion
,但没有用。如何回应%JAVA_HOME%
??
答案 0 :(得分:0)
您似乎在注册表中设置了JavaPath
(无下划线)的JavaHome
。
SETX
AFAIAA WRITES
注册表中的值,但不会将值赋给变量。
注册表中JAVA_HOME
的值可用于FUTURE会话,但尚未建立的会话。
答案 1 :(得分:0)
跟随setx使用另一组来重置局部变量。
SETX -m JAVA_HOME "%JavaPath%"
SET "JAVA_HOME=%JavaPath%"
如果这些都在另一个循环中,那么使用!变量!语法。