Немного другой вариант: я не нумерую все файлы, я нумерую файлы только с совпадающими именами, а не сплошняком. Нумерация файлов с одинаковыми именами и разными расширениями из одной папки одинаковая. Учитываю маски.
Код:
Код: Выделить всё
@Echo Off
cls
Set Folders="Z:\Program Files\Internet Explorer" "Z:\Program Files\7-Zip\Lang" "Z:\Video\Разное\Животные" "Z:\Box_In\Program Files\Internet Explorer" "Z:\Box_In\Program Files\7-Zip\Lang" "Z:\Box_In\Video\Разное\Животные"
Set Mask="*.bat" "2*.xlsx"
Set "Out=Z:\Out"
2>nul Pushd "%Out%" &&(2>nul Rd "%Out%" /S /Q &Popd)||(>nul 2>&1 Md "%Out%")
For %%d In (%Folders%) Do Call :MyCopy "%%~d" "%%~nxd" "%Mask%" "%Out%"
For /F "usebackq delims=" %%d In (`2^>nul Dir %Folders% /B /S /A:D`) Do Call :MyCopy "%%d" "%%~nxd" "%Mask%" "%Out%"
pause
Exit /B
:MyCopy
Pushd %1
Set "Add="
If Not Exist "%~4\%~2.*" GoTo :ContMyCopy
Set /A i=100
:Begin
Set /A i+=1
Set "Add=_%i:~-2%"
If Exist "%~4\%~2%Add%.*" GoTo :Begin
:ContMyCopy
Call :MyReCopy %4 %2 "%Add%" %~3
Popd
Exit /B
:MyReCopy
If "%~4"=="" Exit /B
For /F "usebackq delims=" %%f In (`2^>nul Dir %4 /B /A:-D /O:-D /T:W`) Do (>nul Copy "%%f" "%~1\%~2%~3%%~xf" &GoTo :ContMyReCopy)
:ContMyReCopy
Shift /4
GoTo :MyReCopy
Exit /B
.