Удаление пустых каталогов через CMD
Помогите с написанием cmd-файла. ОС WIN 2000, XP.
В определённом каталоге есть файлы и вложенные папки, некоторые пусты, некоторые нет. Например каталог D:\1 содержит подкаталоги 2, 3, 4, 5, 6 и файлы 111.txt, 222.txt Каталоги 3,5,7 пустые. CMD-файл должен удалить только каталоги 3,5,7. Кол-во подкаталогов и их имена могут быть самые разные. Подкаталог может быть либо пустой либо содержать только файлы (не папки! т.е. глубина вложения папок фиксированная). |
toro,
Код:
for /d %%i in ("D:\1\*") do rd /q %%i Использовано то, что глубина фиксирована и команда rd удаляет только пустые папки (папки с файлами и файлы не трогает), если ее использовать без ключа /s. PS. Почему-то не удаляет каталог Новая папка. |
Цитата:
Код:
for /d %%i in ("D:\1\*") do rd /q "%%i" 2>nul |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Спасибо. Всё предельно понятно.
|
Цитата:
|
Цитата:
P.S. Знаю что тема древняя, однако возможно ответ кому-то пригодиться. |
----------------------------------------------------------------------------------------
CleanUpTempUserFolder.bat ---- run for Admin permitions ---------------------------------------------------------------------------------------- cd /D "C:\DOCUME~1" && del /s /ah desktop.ini FOR /F %%i in ('dir /AD /B "C:\Documents and Settings"') do ( del /f /s /q "C:\DOCUME~1\%%i\LOCALS~1\Temp\*.*" FOR /F "tokens=1,2* delims= " %%a in ('dir /B /S "C:\DOCUME~1\%%i\LOCALS~1\Temp"') do rd /q "%%a %%b" FOR /F "tokens=1,2* delims= " %%a in ('dir /AD /B /S "C:\DOCUME~1\%%i\LOCALS~1\Tempor~1"') do rd /q "%%a %%b" ) |
Удалит с проверяемой вниз при любой глубине все папки в которых нет файлов:
Код:
@echo off |
Вместо пути к папки можно использовать
Код:
%CD% |
Celsus, Теме 12 лет и решена она многократно куда более эффективно
Код:
@Echo Off |
Время: 16:30. |
Время: 16:30.
© OSzone.net 2001-