好的,所以我的最终目标是遍历一个文本文件,并且对于文本文件中的每一行,使用该行作为数组中的键来存储值为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]!
我在这里批量编码有点,所以我猜这是相当简单的东西。 例如,我的语法是否正确引用数组项?