我在目录中有5000多个文件。
我想管理这些文件“拆分”每500个文件,因此第一个包被复制到 folder1 中,其他500个文件的pack2被复制到 folder2 中,依此类推。
我可以使用哪个 .bat 脚本?
答案 0 :(得分:0)
@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
。 在您确认命令正确后,将ECHO(COPY
更改为COPY
以实际复制文件。附加>nul
以取消报告消息(例如1 file copied
)
基本上,每次组完成时,计算传输次数并增加目标目录名,使用delayedexpansion
访问计数器的运行时值