Я полагаю, что ваши списки являются пакетными переменными с разделенными пробелами элементами, такими как:
set alpha=alpha1 alpha2 alpha3 alpha... alphaN
set beta=beta1 beta2 beta3 beta... betaN
Если это так, то вы можете обрабатывать их так, как хотите:
set i=1
:loop
for /F "tokens=%i%" %%a in ("%alpha%") do set alphaElem=%%a
for /F "tokens=%i%" %%b in ("%beta%") do set betaElem=%%b
if "%alphaElem%" == "" goto endLists
echo Pair %i%- %alphaElem% and %betaElem%
set /A i+=1
goto loop
:endLists
Другой и более быстрый подход заключается в том, чтобы сначала преобразовать списки в массивы, а затем напрямую манипулировать элементами массива:
setlocal EnableDelayedExpansion
set i=0
for %%a in (%alpha%) do set /A i+=1 & set alpha[!i!]=%%a
set i=0
for %%b in (%beta%) do set /A i+=1 & set beta[!i!]=%%b
set n=%i%
. . .
for /L %%i in (1,1,%n%) do echo Pair %%i- !alpha[%%i]! and !beta[%%i]!