如何在for循环中动态引用数组?批次

时间:2017-08-31 16:19:57

标签: windows loops batch-file cmd

好的,所以我的最终目标是遍历文本文件,并且对于文本文件中的每一行,使用该行作为数组中的键来存储值1.

然后,遍历目录中的文件,看看上述数组中是否存在此迭代中当前文件名的值。

我的代码如下

@echo off
setlocal enabledelayedexpansion

set filesRan[0]=1
set i=0
for /f "tokens=*" %%a in (input.txt) do (
  set /A i+=1
  set filesRan[%%a]=1
)

set patchesRan[0]=1

for %%f in ("C:\Users\kkennedy\Source\Repos\GeneSeek-DataHub\dbScripts\DDL\Patches\*") do (

    echo %%f

    echo %%~nf

    set thisFileName=%%~nf

    echo triple x !thisFileName!

    echo triple x !filesRan[%%thisFileName]!

    IF "!filesRan[%%thisFileName]!" EQU "1" (
        ECHO already ran it
    ) ELSE (
        ECHO did not run it
    )

    set patchesRan[!%%~nf!]=1

)

没有产生我期望的结果的确切行是:

echo triple x !filesRan[%%thisFileName]!

我在这里用批量盲目编码,所以我猜它是相当简单的。例如,我的语法是否正确引用数组项?

0 个答案:

没有答案