我知道Batch是一种糟糕的脚本语言,你不能期待它,但我认为这可以做到,但我不知道是否有更简单的方法。 我想循环遍历两个元素列表(相同的数字),它们之间的连接类似于关联数组。我想要的是保持第一个列表中项目的位置的引用,并从第二个列表中获取项目。也许这段代码会更好地解释:
SET Projects=(Project1 Project2 Project3)
SET Files=(Project1.txt Project2.txt Project3.txt)
for %%i in %Projects% do (
:: Get the corresponding value in Files like SET ProjectFile=Projects[%%i]
)
对于Project1
,我想获得Project1.txt
,Project2
我需要Project2.txt
,依此类推。是否有任何技巧甚至更难实现这一目标?
答案 0 :(得分:0)
您可以在此处使用伪数组。
首先将文件分配给伪数组文件[0] ..文件[2] 然后,为每个项目编号提取相关文件。
@ECHO OFF
setlocal EnableDelayedExpansion
SET Projects=Project1 Project2 Project3
SET Files=Project1.txt Project2.txt Project3.txt
set /a file_n=0
for %%f in (%files%) do (
set /a file_n+=1
set "files[!file_n!]=%%f"
)
set proj=0
for %%p in (%Projects%) do (
set /a proj+=1
call set file=%%files[!proj!]%%
echo !file!
)