Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2710
Благодарности: 1686

Профиль | Отправить PM | Цитировать


Если "раскидать" - это переместить, не создавая дубликата файла, то логичнее 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!\"
)
При повторном запуске этого батника перезапись уже скопированных файлов не производится

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 20:06, 11-11-2011 | #3