如何将文件夹中的每第 4 个文件复制到新文件夹中?

如何将文件夹中的每第 4 个文件复制到新文件夹中?

我正在将动画导出为 PNG 图像文件。在导出的 1199 个帧序列中,只有每 4 个文件包含一个关键帧,其余图像文件与前一个文件完全相同。

我怎样才能将第 4 个文件复制到新文件夹中?

file-20000.png - Copy
file-20001.png - Duplicate of file-20000
file-20002.png - Duplicate of file-20000
file-20003.png - Duplicate of file-20000
file-20004.png - Copy
file-20005.png - Duplicate of file-20004
file-20006.png - Duplicate of file-20004
file-20007.png - Duplicate of file-20004
file-20008.png - Copy

答案1

用一个为/L循环并设置开始0,的4结尾比仅需要复制第四个文件的文件名部分的数字序列1200多一个。1199

0这将从以 4 为单位计数开始迭代数字0, 4, 8, .... 1196 ,您可以将迭代值作为字符串附加到文件名的一部分中,并与通配符掩码一起使用复制复制每一个第四相应归档。


批处理脚本

笔记: 此逻辑假设文件名始终以“文件-2”并且始终以扩展名之前的点之前的序列号结尾png(即<SeqNum>.png

@ECHO ON

SET SrcDir=C:\folder\src
SET DestDir=C:\folder\dest
SET fNamePart=file-2
SET ext=png

FOR /L %%a IN (0, 4, 1200) DO (
    ECHO F | XCOPY /Y /F "%SrcDir%\%fNamePart%*%%a.%ext%" "%DestDir%\"
    )

PAUSE
EXIT

更多资源

  • 为/L

    FOR /L %variable IN (start,step,end) DO command [command-parameters]
    
        The set is a sequence of numbers from start to end, by step amount.
        So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
        generate the sequence (5 4 3 2 1)
    
  • 复制

答案2

如果所有您想要的文件的名称中都有,而所有您不想要的文件的名称中Copy都没有,那么您可以使用,例如Copy*Copy*

复制 *复制*目的目录
或使用*copy*,因为 Windows 不区分大小写。如果您想要的所有文件都有Copy 在最后的名称,您可以改用*Copy(省略*末尾的)。您可以在 Windows 资源管理器中使用文件名模式,方法是file:*copy*在搜索框中键入。

相关内容