首页 > 解决方案 > 如何构建一个批处理文件来复制特定命名约定的最新文件

问题描述

我一直在尝试构建一个批处理文件,该文件将从包含多个命名约定的文件夹中复制特定命名约定的最新文件。例如,文件夹将包含以下类型的文件名,我想要最新的 List01 和最新的 List02:

C:\Import\List01####.txt    modified date 01/07/2021 15:40
C:\Import\List01####.txt    modified date 02/07/2021 15:40
C:\Import\List02####.txt    modified date 03/07/2021 15:40
C:\Import\List02####.txt    modified date 04/07/2021 15:40

#### 代表任何随机命名,重要的是 List01 或 List02 等

我希望输出是每个列表编号的最新文件的副本:

C:\Results\List01####.txt   modified date 02/07/2021 15:40
C:\Results\List02####.txt   modified date 04/07/2021 15:40

到目前为止,我有以下内容可以在文件夹中找到最新的文件,但我不确定如何区分 List01 和 List02,因为我需要每个列表的最新文件。我试过 findstr 但不能让它工作。

@echo off
set source="C:\Import\"
set target="C:\Results"

for /f "delims=" %%I in ('DIR %source%\*.txt /A:-D /O:-D /B') DO COPY %source%\"%%I" %target% & echo %%I & GOTO :END

TIMEOUT 5

:END

我已经阅读了关于此的类似帖子,但无法弄清楚如何将其应用于我的具体情况。

标签: batch-filefindcopy

解决方案


推荐阅读