我希望在我的批处理文件中使用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)。
请帮忙!
答案 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。