如何从windowsbatch file中获取dynamicvariables的值

我正在使用Microsoft Windows XP [版本5.1.2600]

试图做到这一点。

尝试dynamic创buildvariables,然后从循环中读取该variables的值。

@ECHO off SET SQL1=TEST SET SQL2=TEST1 SET SQL3=TEST2 SET SQL=SQL SETLOCAL ENABLEDELAYEDEXPANSION SET /A number=0 FOR /l %%A IN (1,1,3) DO ( SET /A number = number + 1 echo !number! echo %SQL%!number! ) endlocal Output should be 1 test 2 test2 3 test3 I am getting C:\temp>c.bat 1 SQL1 2 SQL2 3 SQL3 

请帮忙!

Solutions Collecting From Web of "如何从windowsbatch file中获取dynamicvariables的值"

啊。

第一种方式(请注意,而不是你的number变量,它使用循环计数器变量%%A ):

 @ECHO off SET SQL1=TEST SET SQL2=TEST1 SET SQL3=TEST2 SETLOCAL ENABLEDELAYEDEXPANSION SET /A number=0 FOR /l %%A IN (1,1,3) DO ( SET /A number = number + 1 echo !number! echo !SQL%%A! ) endlocal 

第二种方式(丑,但它做你想做的):

 @ECHO off SET SQL1=TEST SET SQL2=TEST1 SET SQL3=TEST2 SETLOCAL ENABLEDELAYEDEXPANSION SET /A number=0 FOR /l %%A IN (1,1,3) DO ( SET /A number = number + 1 echo !number! for %%i in (!number!) do (echo !SQL%%i!) ) endlocal