按编号对文件和 '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
您需要更改 sourcedir
和 destdir
的设置以适合您的情况。
maxcount
设置分配给一个组的文件数。
所需的 COPY 命令仅 ECHO
ed 用于测试目的。 确认命令正确后,将ECHO(COPY
更改为COPY
以实际复制文件。附加 >nul
以禁止报告消息(例如 1 file copied
)
本质上,每次完成一个组时,计算传输次数并递增目标目录名称,使用delayedexpansion
访问计数器的运行时间值
我在一个目录中有 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
您需要更改 sourcedir
和 destdir
的设置以适合您的情况。
maxcount
设置分配给一个组的文件数。
所需的 COPY 命令仅 ECHO
ed 用于测试目的。 确认命令正确后,将ECHO(COPY
更改为COPY
以实际复制文件。附加 >nul
以禁止报告消息(例如 1 file copied
)
本质上,每次完成一个组时,计算传输次数并递增目标目录名称,使用delayedexpansion
访问计数器的运行时间值