批处理文件用于具有2个数组的循环

时间:2014-03-07 00:31:40

标签: arrays batch-file

我希望在我的批处理文件中使用for循环来迭代2个数组。我脑海中的伪代码如下所示:

for each i in array1 
 print i
 print array2[x++]

array1和array2将具有相同的大小。

我能否在批处理文件中获得相同的结果? 我目前有以下代码。

for %%i in %APP_LIST1% DO (
    %appcmd% add app /site.name:%siteName% /path:/%%i /physicalPath:"d:\Apps\%%i"
)

我想在同一个for循环中使用%APP_LIST2%(又名array2)。

请帮忙!

1 个答案:

答案 0 :(得分:1)

恐怕我真的不明白你对第二个阵列有什么顾虑。如果您可以访问一个阵列,则可以以相同的方式访问任意数量的阵列......

请注意,数组Wikipedia中定义的“可在运行时计算的索引中选择的数据项集合”。这样,您可以使用第一个数组中使用的相同索引来访问第二个数组;这应该适用于你的情况因为“array1和array2将具有相同的大小”。

例如:

@echo off
setlocal EnableDelayedExpansion

rem Create first array
set i=0
for %%a in (apple orange pear) do (
   set /A i+=1
   set fruit[!i!]=%%a
)

rem Create second array
set i=0
for %%a in (red green blue) do (
   set /A i+=1
   set color[!i!]=%%a
)

rem Access both arrays at same time
for /L %%i in (1,1,3) do (
   echo Fruit: !fruit[%%i]!, color: !color[%%i]!
)

有关批处理文件中阵列管理的更多详细信息,请参阅:this post