按编号对文件和 'splitting' 进行分组并将它们复制到文件夹中

Grouping files and 'splitting' by number and copying them inside folders

我在一个目录中有 5000 多个文件。
我想每 500 个文件管理这些文件 'splitting',所以第一个包被复制到 folder1,其他 500 个文件的 pack2 被复制到 folder2等等。

我可以使用哪个 .bat 脚本?

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir\t w o"
SET "destdir=U:\destdir"
SET /a destcount=0
SET /a maxcount=5
SET /a filecount=maxcount
FOR /f "delims=" %%a IN (
 'dir /b /a-d "%sourcedir%\*" '
 ) DO (
 SET /a filecount +=1
 IF !filecount! geq %maxcount% (
  SET /a filecount=0
  SET /a destcount +=1
  MD "%destdir%\folder!destcount!"
 )
 ECHO(COPY "%sourcedir%\%%a" "%destdir%\folder!destcount!\"
)

GOTO :EOF

您需要更改 sourcedirdestdir 的设置以适合您的情况。

maxcount 设置分配给一个组的文件数。

所需的 COPY 命令仅 ECHOed 用于测试目的。 确认命令正确后,将ECHO(COPY更改为COPY以实际复制文件。附加 >nul 以禁止报告消息(例如 1 file copied

本质上,每次完成一个组时,计算传输次数并递增目标目录名称,使用delayedexpansion访问计数器的运行时间值