@echo off
set source_folder=C:\source_folder
set num_subfolders=4
:: 统计总文件数
set total_files=0
for %%F in (%source_folder%\*) do set /a total_files+=1
:: 计算每个文件夹该放多少文件(自动向上取整)
set /a files_per_subfolder=(total_files + %num_subfolders% - 1) / %num_subfolders%
set file_index=0
:: 开始分文件
for %%F in (%source_folder%\*) do (
set /a file_index+=1
set /a current_subfolder=(file_index - 1) / files_per_subfolder
if not exist "%source_folder%\subfolder_%current_subfolder%" mkdir "%source_folder%\subfolder_%current_subfolder%"
move "%%F" "%source_folder%\subfolder_%current_subfolder%"
)