ak7*_*k77 3 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
Run Code Online (Sandbox Code Playgroud)
请帮忙!
啊。
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
Run Code Online (Sandbox Code Playgroud)
第二种方式(丑陋,但它可以满足你的要求):
@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
Run Code Online (Sandbox Code Playgroud)