|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Удалить файлы по размеру и дате создания (не изменения) |
|
Любой язык - Удалить файлы по размеру и дате создания (не изменения)
|
Новый участник Сообщения: 9 |
Желательно сделать как cmd/bat скрипт, но сгодится и vbs.
Есть непрерывно записывающая веб-камера и желание автоматически удалять старые записи, на которых судя по всему ничего не происходило. Размеры файлов для удаления либо более 40000000 байт (камеру глючит ночью и она пишет с максимальным битрейтом), либо менее 15000000 байт, расширения файлов avi. Скрипт будет добавлен в планировщик задач. Должно корректно работать при смене месяца. К сожалению, камера не проставляет дату изменения файла (везде ставит 1970 год), только дату создания, так что FORFILES /D -7 отпадает с ошибкой ОШИБКА: параметр задан неверно. Как вариант дату можно получать из названия папки или самих файлов. Например, последняя запись должна лежать в папке 20140905 и называться вроде 20140905_180501.avi |
|
Отправлено: 18:14, 05-09-2014 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Vlad87, этот пакетный файл создаст Вам другой пакетный файл, просмотрев содержимое которого, Вы сделаете вывод: запускать его или нет.
@echo off set "folder=D:\Webcam" set days=7 set min=15000000 set max=40000000 ( echo @echo off echo. echo. echo :: Удаляем все папки, которые старше %days% дней, вместе с файлами: ( forfiles /p "%folder%" /d -%days% /c "cmd /c if /i @isdir==true echo rd /q/s @path" 2>nul )|| echo rem Не найдены. echo. echo. echo :: Удаляем файлы, размер которых меньше %min% байтов: echo. ( for /f "tokens=*" %%i in (' robocopy "%folder%" %random% /nc /ns /ndl /njh /njs /l /e /max:%min% ') do ( echo del "%%i" ) )|| echo rem Не найдены. echo. echo. echo :: Удаляем файлы, размер которых больше %max% байтов: echo. ( for /f "tokens=*" %%i in (' robocopy "%folder%" %random% /nc /ns /ndl /njh /njs /l /e /lev:2 /min:%max% ') do ( echo del "%%i" ) )|| echo rem Не найдены. echo. echo. echo :: Удаляем пустые папки: echo. ( for /d %%i in ("%folder%\*") do ( ( for /f %%j in ('dir /a/b "%%i"') do pause<nul>nul )|| echo rd /q/s "%%i" ) )|| echo rem Не найдены. echo. echo. echo exit )>"Delete.cmd" exit /b . |
Отправлено: 11:22, 06-09-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата Georgio:
Да, это действительно не совсем то: в сгенерированном файле прописались команды на удаление старых папок целиком и свежесозданных файлов подходящего размера с любым расширением. |
|
Последний раз редактировалось Vlad87, 08-09-2014 в 14:37. Отправлено: 15:23, 06-09-2014 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания) | DIMM2005 | Программное обеспечение Windows | 36 | 03-01-2020 16:54 | |
VBS/WSH/JS - [решено] Удаление файлов по маске/размеру/времени изменения | nineline | Скриптовые языки администрирования Windows | 6 | 28-05-2015 08:36 | |
CMD/BAT - [решено] Помогите написать батник, копирующий файлы по дате изменения | kirillius | Скриптовые языки администрирования Windows | 4 | 22-07-2014 17:31 | |
CMD/BAT - Изменить функцию сортировки файлов - сортировка дб по дате создания а не изменения | dark-------13 | Скриптовые языки администрирования Windows | 2 | 04-07-2012 17:55 | |
CMD/BAT - Переименование группы файлов по дате создания | Serg2010 | Скриптовые языки администрирования Windows | 8 | 14-04-2012 00:40 |
|