Войти

Показать полную графическую версию : [решено] Удаление пустых каталогов и подкаталогов через CMD


Andzzzz
10-07-2011, 09:40
Всем привет! Хотелось бы в определенном каталоге удалить все пустые каталоги и подкаталоги. данная команда for /d %%i in ("D:\1\*") do rd /q "%%i" 2>nul вычищает пустые каталоги на фиксированной глубине вложения папок. мне же необходимо наоборот, на не фиксированной глубине.

Foreigner
10-07-2011, 10:11
Andzzzz,

for /f "tokens=*" %%i in (' dir /b /s /ad "D:\1\" ') do 2>nul rd /q "%%i"

for /r "D:\1" /d %%i in (*) do 2>nul rd /q "%%i"

Andzzzz
10-07-2011, 10:22
Foreigner,
все замечательно, но одно неудобное НО. в папке D:\1\ друг в друга вложены 6 пустых каталогов, при единичном запуске данного кода for /f "tokens=*" %%i in (' dir /b /s /ad "D:\1\" ') do 2>nul rd /q "%%i"
for /r "D:\1" /d %%i in (*) do 2>nul rd /q "%%i" удаляется только два пустых каталога. т.е. чтобы мне удалить все шесть пустых каталога, придется запускать код 3 раза. Немного неудобно.

Foreigner
10-07-2011, 10:43
Andzzzz,
удаляется только два пустых каталога.
Это просто два способа пройтись по вложенным каталогам.
Попробуй такой вариант:

@echo off

:again
for /f "tokens=*" %%i in (' dir /b /s /ad "D:\1" ') do 2>nul rd /q "%%i" && goto:again

Andzzzz
10-07-2011, 10:54
все отлично, спасибо за оперативную помощь! ;)

DOCznet
29-08-2013, 16:00
for /d %%i in ("D:\1\*") do rd /q "%%i" 2>nul »

А как можно докрутить этот скрипт, что бы он при проверке условия не опускался ниже указанного каталога, и условием являлось не наличие/отсутствие файлов, а размер каталога?




© OSzone.net 2001-2012