[英]setlocal enabledelayedexpansion in batch file
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%
when i try echo using !JavaPath!
当我尝试使用
!JavaPath!
回!JavaPath!
, am getting value and when i tried echo %JAVA_HOME%
, the value is empty. ,正在获取值,当我尝试回显
%JAVA_HOME%
,该值为空。
I tried with enabledelayedexpansion
also but no use. 我也尝试了
enabledelayedexpansion
但没有用。 How to echo %JAVA_HOME%
?? 如何回显
%JAVA_HOME%
?
You appear to be setting JavaPath
from the value of JavaHome
(no underscore) in the registry. 您似乎从注册表中
JavaHome
的值(无下划线)设置JavaPath
。
SETX
AFAIAA WRITES
the value into the registry but does not assign the value to the variable. SETX
AFAIAA WRITES
值到注册表,但不会将该值赋给变量。
The value in JAVA_HOME
in the registry would be available to FUTURE sessions, but not already-established sessions. 注册表中
JAVA_HOME
中的值可用于FUTURE会话,但不适用于已建立的会话。
Follow the setx with another set to reset the local variable. 在setx之后跟随另一个set以重置局部变量。
SETX -m JAVA_HOME "%JavaPath%"
SET "JAVA_HOME=%JavaPath%"
If these are all within another loop then use !variable! 如果这些都在另一个循环中,则使用!variable! syntax.
句法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.