исходная папка
set folder_from=e:\photo
конечная папка
set folder_where=e:\all_photo
файлы
set mask=*.*
for /f "delims=" %%a in ('dir /b /s /a:-d "%folder_from%\%mask%"') do (
Call :GetEmptyName "%folder_where%" "%%~nxa" NewName
echo move /y "%%~a" "%folder_where%\!NewName!"
)
pause>nul
goto :eof
проверяем и переименовываем файлы при совпадении
:GetEmptyName %1-Folder %2-FileName %3-Var.Return %4-Optional.System.Num
if "%~4"=="" (
Set "NewFileName=%~2"
) else (
Set "NewFileName=%~n2(%~4)%~x2"
)
if exist "%~1\%NewFileName%" (
Set Num=%~4
Set /a Num+=1
Call :GetEmptyName "%~1" "%~2" "%~3" "!Num!"
) else (
Set "%~3=%NewFileName%"
Exit /B
)
Exit /B
Скажите СПАИБО киберфоруму :)
Ну, или тут...
Проверил, копирует только из одной папки (которая указана), а нужно изо всех