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

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

krisnv 23-03-2010 13:21 1375281

Удаление в каталоге всех подкаталогов, размер которых превышает 20 Мбайт
 
Написать пакетный файл, который автоматически удалял бы в каталоге, указанном в командной строке все подкаталоги, размер которых превышает 20 Мбайт.
Если пакетный файл запуска¬ется вообще без параметров, то вывести описание его синтаксиса.

gora 23-03-2010 14:18 1375329

Код:

@Echo Off
:: Кодировка файла DOS (866)
SetLocal enabledelayedexpansion
Set Folder=%~1
If Not Defined Folder GoTo :_help
For /F %%i In ('Dir "%Folder%" /AD /B /ON 2^>Nul') Do (
        Call :_sizedir "%Folder%\%%i"
        If !dirsize! GTR 20971520 Echo RD /S /Q "%Folder%\%%i"
)
Pause>Nul
Exit

:_help
Echo %~nx0 "Full\path\Folder"
Pause>Nul
Exit

:_sizedir
Set flag=0
Set dirsize=0
For /F "tokens=1-3" %%a In ('dir %1 /-C /S /A:-D 2^>Nul') Do (
        If !flag!==1 Set dirsize=%%c
        If "%%b"=="файлов:" (Set flag=1) Else Set flag=0
)
GoTo:EOF

Для тестов команда удаления закомментирована командой "Echo".

krisnv 23-03-2010 18:59 1375514

Блин он не хочет удалять

gora 23-03-2010 19:42 1375540

Цитата:

Цитата krisnv
не хочет удалять »

1 Проверьте кодировку файла (DOS).
2 Удалите Echo в 8-ой строке.
3 Может папки какие-то система не дает удалить?


Время: 23:48.

Время: 23:48.
© OSzone.net 2001-