我使用的是 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
关于windows - 如何从Windows批处理文件中的动态变量中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999327/