Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


Просто получается решить задачу с помощью батника.
Код: Выделить весь код
@Echo Off
Set Fold=E:\Delete\
Set Ext=avi

Set FoldExt=%Fold:~0,-1%.%Ext%\

FOR /F "usebackq delims=" %%i IN (`dir "%Fold%" /A:D /B /s`) DO Call :SubDir "%%~fi" "%%i"
GoTo :EOF

:SubDir
Set L=True
Set ff=%~1
Set ff=%FoldExt%%ff:~3%\

FOR %%s IN ("%~1\*.%Ext%") DO (
   If %L%==True Md "%ff%" >Nul 2>Nul
   Set L=False
   Move /Y "%%~fs" "%ff%" >Nul
)
Рядом с исходной директорией (в примере E:\Delete\) создаём директорию с таким же именем, но с расширением файлов (в примере E:\Delete.avi\)
И туда перемещаем все файлы с указанным расширением, сохраняя дерево директорий. Зачем? - сохраняем в целостности одноимённые файлы, да и вернуть всё назад при этом очень просто-ничего необратимого при этом мы не делаем. Впоследствии убить директорию - нет проблем.

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


Отправлено: 13:21, 22-05-2010 | #4