0

我知道 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等等。是否有任何技巧甚至更难的方法来实现这一目标?

4

1 回答 1

0

您可以在此处使用伪数组。

首先文件被分配给一个伪数组文件[0]..file[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!
)
于 2013-10-07T08:20:13.310 回答