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_主页%
现在我的问题是,我想访问这些变量,如果我使用调用集,它会出错,因为我认为我们不允许在循环中使用调用集。
所以,如果你对这个问题有一个想法,请告诉我
多谢各位