Все, что вам нужно, это delayedexpansion
. Из консоли cmd запустите setlocal /?
для получения справки. Например, если вы хотите установить стандартное имя переменной !output!
, но измените его содержимое, включив в него номер счетчика цикла:
@echo off
setlocal enabledelayedexpansion
for /L %%i in (1,1,10) do (
if %%i equ 1 set handle=st
if %%i equ 2 set handle=nd
if %%i equ 3 set handle=rd
if %%i geq 4 (if %%i lss 11 set handle=th)
set /p "input=What is your %%I!handle! input? :"
set input=!input!%%i
echo !input!
)
Вы также не хотите выводить 1-й раз при каждом вызове ввода, 2-й не 1-й, поэтому посмотрите примеры операторов if.