Форум разработчиков | CMD\BAT | Developers Forum

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Удаление файлов > 20 mb

Сообщений 1 страница 2 из 2

1

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

P.S.
Нашел тут вот кое что, в чем может быть ошибка он не работает делаю два бат файла один как я понял считывает размер каталогов:

Код:
--- del_big_dirs.bat ---
@echo off 
if %1-==- goto help 
SetLocal EnableExtensions EnableDelayedExpansion 
set /A max_size=20*1024*1024 

For /d %%d In (%1\*.*) Do ( 
set sz=0 
call %0\..\calc_dir.bat "%%d" 
if !sz! GTR %max_size% rd /s /q "%%d" 
) 
goto :eof 
:help 
echo параметр вызова - имя каталога. Если есть пробелы, то взять в кавычки
Код:
----calc_dir.bat ----
set dir=%1 
set sz=0 
for /R %dir% %%f in (*.*) do set /A sz+=%%~zf

0

2

можно и одним файлом

Код:
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
if %1-==- goto help
set /a max_size=20*1024*1024
for /d %%d in (%1\*.*) do (
call :calc_dir "%%d"
if !sz! gtr %max_size% rd /s /q "%%d"
)
pause
exit /b
:help
echo Параметр вызова - имя каталога. Если есть пробелы, то взять в кавычки
pause
exit /b
:calc_dir
set dir=%1
set sz=0
for /R %dir% %%f in (*.*) do set /a sz+=%%~zf
exit /b

А чтобы вызвать батник с параметром, создайте для батника ярлык. Откройте свойства ярлыка и в строке объект добавьте нужный параметр. Или через интерпретатор с параметром

+1



Рейтинг форумов | Создать форум бесплатно