繁体   English   中英

如何从Windows批处理文件中的动态变量获取值

[英]How to get the value from a dynamic variable in windows batch file

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

试图做到这一点。

尝试动态创建变量,然后在循环中从该变量中读取值。

@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

请帮忙!

啊。

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

@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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM