Если "раскидать" - это переместить, не создавая дубликата файла, то логичнее Copy заменить нa Move, и перемещать не по 1 файлу, а группой по маске (по дате). Цикл For у
gora тогда можно переписать в виде
Код:
For /R "%Folder%" %%i In (*.jpg) Do (
IF EXIST "%%i" (
Set name=%%~ni
Set mask=!name:~1,8!
MD "%Out%\!mask!"
Move "%%~dpi?!mask!*%%~xi" "%Out%\!mask!\"
)
)
Ежели файлы всё же надо копировать, а не перемещать, то для копирования группой по маске For у
gora можно переписать в виде
Код:
For /R "%Folder%" %%i In (*.jpg) Do (
Set name=%%~ni
Set mask=!name:~1,8!
IF Not EXIST "%Out%\!mask!\*.*" MD "%Out%\!mask!"
IF Not EXIST "%Out%\!mask!\%%~nxi" Copy "%%~dpi?!mask!*%%~xi" "%Out%\!mask!\"
)
При повторном запуске этого батника перезапись уже скопированных файлов не производится