Возможно, вам придется использовать отложенное расширение переменных среды. Команда SETLOCAL EnableDelayedExpansion
инициализирует режим, после чего вы можете использовать отложенное расширение, заключая переменные в !
вместо %
.
Вот иллюстрация того, как его можно использовать:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
ECHO Initialising...
FOR /L %%i IN (1,1,5) DO SET Dog.%%i=!RANDOM!
ECHO Displaying...
FOR /L %%i IN (1,1,5) DO ECHO %%i: !Dog.%%i!
SET index=3
ECHO Dog.%index% is !Dog.%index%!
Выход:
Initialising...
Displaying...
1: 1443
2: 6940
3: 24198
4: 8054
5: 14092
Dog.3 is 24198
Вы можете видеть, что в последней части скрипта используется как немедленное, так и отложенное расширение. Немедленное расширение заменяет %index%
на 3
и приводит к имени переменной Dog.3
. Затем отложенное расширение заменяет выражение !Dog.3!
значением переменной Dog.3
.