Batch file 如何访问批处理文件中其他变量中环境变量的值

Batch file 如何访问批处理文件中其他变量中环境变量的值,batch-file,Batch File,这是我的代码: SET JAVA_VERSION=%1 REM here lets assume the user enter a JAVA_7_HOME as an argument @ECHO %JAVA_VERSION% REM this print me JAVA_7_HOME because JAVA_7_HOME is STRING REM Now I want to access to the value of environment variable JAVA_7_HO

这是我的代码:

SET JAVA_VERSION=%1 
REM here lets assume the user enter a JAVA_7_HOME as an argument   
@ECHO %JAVA_VERSION% 
REM this print me JAVA_7_HOME because JAVA_7_HOME is STRING
REM Now I want to access to the value of environment variable JAVA_7_HOME so I done this :
if %%%JAVA_7_HOME%%%  ==[]GOTO INDEFINED_VARIABLE 
REM here I concatinate JAVA_7_HOME with % % at the left and at the right but doesn't works
我不知道如何访问环境变量JAVA_7_HOME的值

多谢各位

CALL SET JAVA_VERSION=%%%1%%
该行将被解析为

CALL SET JAVA_VERSION=%JAVA_7_HOME%
现在,执行
call
命令并重新解析行,最后执行命令

SET JAVA_VERSION=C:\SomeWhere
此外,还可以启用延迟扩展并执行以下操作:

SETLOCAL EnableDelayedExpansion
SET JAVA_VERSION=!%1!    
我支持这个主题:),所以你的解决方案没有循环也可以,但现在我改变了概念,我有一个名为CONTEXT_VARAIABLE的变量,它包含一些其他环境变量的名称,例如,在我的例子中是:

CONTEXT_VARAIABLE=JAVA_HOME;JBOSS_HOME
现在,我从这个变量上下文中循环得到每个变量,并对其进行处理,因此我的代码如下:

setlocal EnableDelayedExpansion
FOR %%L IN (%SOLIFE_VERSION%) DO ( 
    SET JAVA_JBOSS_HOME=%%%%L%% 
    @ECHO !JAVA_JBOSS_HOME! 
)
在这里,每次循环都会打印我: %爪哇之家% %JBOSS_主页% 现在我的问题是,我想访问这些变量,如果我使用调用集,它会出错,因为我认为我们不允许在循环中使用调用集。 所以,如果你对这个问题有一个想法,请告诉我

多谢各位