Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаление пустых каталогов и подкаталогов через CMD (http://forum.oszone.net/showthread.php?t=210867)

Andzzzz 10-07-2011 09:40 1710436

Удаление пустых каталогов и подкаталогов через CMD
 
Всем привет! Хотелось бы в определенном каталоге удалить все пустые каталоги и подкаталоги. данная команда
Код:

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

Foreigner 10-07-2011 10:11 1710443

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 1710445

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 1710448

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 1710454

все отлично, спасибо за оперативную помощь! ;)

DOCznet 29-08-2013 16:00 2209657

Цитата:

Цитата Andzzzz
for /d %%i in ("D:\1\*") do rd /q "%%i" 2>nul »

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


Время: 03:17.

Время: 03:17.
© OSzone.net 2001-