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

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

Ветеран


Contributor


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

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


Вот несколько парадоксальное решение:
Код: Выделить весь код
Set Where=C:\Tmp

rd "%Where%" /s /q
md "%Where%"
У меня Win XP. Как это работает: удаляются все файлы в папке и подпапках, если они ничем не заняты. Удаляются все подпапки, если они пустые (т е если в них не осталось занятых чем-нибудь файлов), удаляется и указанная папка. Если удалится исходная указанная папка, мы её пересоздадим. Если при пересоздании папки выдастся ошибка (если папка не удалилась), на неё можно не обращать внимания, ничем она не мешает.

Как вариант, можно, конечно, удалить все файлы в указанной папке, можно организовать цикл по именам подпапок в корне указанной папки и последовательно их удалить. Но это длинее.
Код: Выделить весь код
Set Where=C:\Tmp
del "%Where%\*.*" /Q
FOR /F "usebackq delims=" %%i IN (`dir "%Where%\" /B /AD`) DO rd "%Where%\%%i" /s /q

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


Последний раз редактировалось megaloman, 05-09-2010 в 16:35.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:00, 05-09-2010 | #15