我有一个包含大约 50 个子文件夹(称为0001
, 0002
, 0003
... 等)的文件夹,每个子文件夹包含数百个文件(称为0001_132.txt
, 0002_312.txt
, 0032_152.txt
... 等),我需要运行一个批处理文件来提取我尚未处理的文件自上次运行批处理文件以来。
我目前的做法是保存一个.txt
文件,告诉我上次更新期间提取的最后一个文件的文件名。下次我运行批处理文件时,它会遍历子文件夹,直到到达该特定文件名,然后开始提取比该特定文件更新的文件。
我不确定我这样做的方式是否好,但它确实有效。但是,由于我在文件夹中有很多文件,每次批处理文件在提取新文件之前读取所有旧文件,这会导致程序运行相当长的时间。所以,我想问一下,有没有办法不循环遍历那些旧文件?
记录最后更新文件的文件如下所示:
last_update.txt: format([subfoldername]_[file].txt)
例如: 0001_134 0002_213 。. 0050_241
我的批次看起来像这样:
for /f %%a in (C:\last_update.txt) do (
set number=%%a
set "subfolder=!number%:~0,4!"
set reach=0
for /f %%x in (c:\data\subfolder\) do (
if %%~nx==!number! (
set reach=1
)
if not %%~nx==!number! if !reach!==1 (
DO THE EXTRACTION
)
set latest_File=%%~nx
)
echo !latest!>>last_update_temp.txt
)
del last_update.txt
ren last_update_temp.txt last_update.txt