Как получить значение из динамической переменной в пакетном файле Windows - PullRequest
2 голосов
/ 03 апреля 2012

Я использую 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

Пожалуйста, помогите!

1 Ответ

4 голосов
/ 03 апреля 2012

Тьфу.

Первый способ (обратите внимание, что вместо вашей переменной 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...