Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Удалить файлы по размеру и дате создания (не изменения)

Ответить
Настройки темы
Любой язык - Удалить файлы по размеру и дате создания (не изменения)

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Желательно сделать как cmd/bat скрипт, но сгодится и vbs.
Есть непрерывно записывающая веб-камера и желание автоматически удалять старые записи, на которых судя по всему ничего не происходило. Размеры файлов для удаления либо более 40000000 байт (камеру глючит ночью и она пишет с максимальным битрейтом), либо менее 15000000 байт, расширения файлов avi. Скрипт будет добавлен в планировщик задач.
Должно корректно работать при смене месяца. К сожалению, камера не проставляет дату изменения файла (везде ставит 1970 год), только дату создания, так что FORFILES /D -7 отпадает с ошибкой ОШИБКА: параметр задан неверно.
Как вариант дату можно получать из названия папки или самих файлов. Например, последняя запись должна лежать в папке 20140905 и называться вроде 20140905_180501.avi

Отправлено: 18:14, 05-09-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Georgio:
Vlad87, этот пакетный файл создаст Вам другой пакетный файл, просмотрев содержимое которого, Вы сделаете вывод: запускать его или нет. »
Благодарю, попробую его запустить в понедельник. Но подозреваю, что это не совсем то: удалять папки целиком я не планировал. В любом случае напишу результат. Если не получится - буду отталкиваться от VBS конструкции dateadd("d",-7,now)


Да, это действительно не совсем то: в сгенерированном файле прописались команды на удаление старых папок целиком и свежесозданных файлов подходящего размера с любым расширением.

Последний раз редактировалось Vlad87, 08-09-2014 в 14:37.


Отправлено: 15:23, 06-09-2014 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Удалить файлы по размеру и дате создания (не изменения)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания) 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




 
Переход