首页 > 解决方案 > 如何在 for 循环 Windows 批处理脚本中递归地迭代数组

问题描述

我有一个批处理脚本,它读取并打印文件 entry.txt 中的每一行和行号,如下所示。

我有一个名为list.

SETLOCAL enabledelayedexpansion

set i=0
set "strc=autorun_"

set list = PROD01 PROD02 PROD03 BangScan

for /f "tokens=*" %%a in (entry.txt) do (
set /a i+=1

::set /a zrrcount = !i!%5
::echo arrc=%%zrrcount
::echo list[%arrc%]

echo counter"%strc%!i!"
echo line=%%a
java pack.Scan %strc%!i! %%a

)
pause

在 for 循环中,我希望为第一次循环迭代打印数组的第一个元素,当循环第二次运行时,应该打印数组的第二个元素,同样地。

一旦数组完成,即当数组的最后一项被打印并且循环继续时,数组必须从头开始打印元素,即从第一个元素开始。

这样for loop运行

iteration 1  must print PROD01
iteration 2  must print PROD02
iteration 3  must print PROD03
iteration 4  must print BangScan
iteration 5  must print PROD01
iteration 6  must print PROD02
and so on ...

注意:!i!打印循环的迭代次数。

我是批处理新手。任何帮助,将不胜感激。

标签: windowsfor-loopbatch-filearraylist

解决方案


推荐阅读