Код:
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Folds="1111" "2222""
Set "Pref=check"
Set "Mask=%Pref%*.*"
Set /A Max=1000
Set "BoxOut=Z:\Box_In\Total"
If Not Exist "%BoxOut%" Md "%BoxOut%"
Pushd "%BoxIn%" &&(
FOR %%d IN (%Folds%) DO (
FOR %%f IN ("%%~dpnxd\%Mask%") DO (
Call :RenCopy "_%%~d" "%%f" "%%~nf" "%%~xf" "%BoxOut%"
)
)
Popd
)
Pause
GoTo :Eof
:RenCopy
Set "NewName=%~3"
Call Set "NewName=%%NewName:%Pref%=%%"
2>nul Set /A NewName=%NewName%+%Max% ||GoTo :Eof
Set "NewName=%Pref%%NewName:~1%%~1%~4"
>nul Copy %2 "%~5\%NewName%"
>nul Ren %2 "%NewName%"
GoTo :Eof
Как я понимаю, имена папок и файлов в вопросе условны.
Главное, чтобы выдерживалось правило образования имени : ПрефиксНомерРасширение. Расширение может и отсутствовать, тогда:
Set "Mask=%Pref%*."
Предполагаю, что обе подпапки находятся в общей папке. Имена корневой папки, подпапок, выходной папки укажите сами. Кстати, число подпапок в моём решении произвольно, извольте их перечислить.
Укажите префикс в именах файлов, в Вашем вопросе он check
Можно задать формат номера в новом имени.
Для Max=1000 номер будет трёхзначным, например, 001
Для Max=10000 номер будет четырёхзначным, например, 0002
В выходную папку копируются файлы с новым именем.
В исходной папке файлы переименовываются.
Если не надо, чтобы переименовывались файлы в исходной папке, уберите строку с ren