![]() |
Удаление файлов кроме сегодняшнего
Здравствуйте,
У меня возникла задачка: в папке имеются логи за несколько лет. Каждый день программа создает новый файл. Все бы ничего, если бы не возникла потребность удалять файлы по причине отсутсвия места на диске. Можно конечно было вручную снести все файлы, но хочется автоматизировать данный процесс. Так вот, как сделать так, чтобы в одной конкретной папке удалялись файлы старше 1-х суток. Программа каждые сутки создает файл типа: ftp20130301.log, вчера ftp20130228.log и так далее..... Заранее спасибо |
Kenwood, ориентируемся на дату/время последней модификации самого файла или же на дату в его имени?
|
ИМХО, имеет смысл хранить заданное кол-во логов, например, 2, а остальные удалять, и не задумываться о датах. Главное, чтобы логи бесконечно не накапливались, а батник в назначенном задании это периодически отслеживал. Так как программа каждые сутки создает файл типа: ftpГГГГММДД.log и если ориентируемся на дату/время последней модификации самого файла, то
Код:
@Echo Off Код:
FOR /F "usebackq skip=2 delims=" %%f IN (`DIR "%Where%\ftp*.log" /B /A:-D /O:-N 2^>nul`) DO Echo Del "%Where%\%%f" Код:
@Echo Off По идее, можно совсем обойтись без батника, используя CMD и For в назначенном задании, например: Код:
cmd /Q /C FOR /F "usebackq skip=2 delims=" %f IN (`DIR "D:\Tmp\ftp*.log" /B /A:-D /O:-N`) DO Del "D:\Tmp\%f" >nul |
Надо ориентироваться только на дату в его имени
|
Kenwood, тогда можно так:
Код:
@echo off |
спасибо ограмное, все сработало!!! Так как надо было.
Спасибо всем за помощь, особенно Iska |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Стандартные потоки — Википедия Перенаправление ввода-вывода — Википедия |
Подниму тему.
А если файл вида 2021-05-10-07-42_11.02.038_03565688.ZBF ? Как тут можно отфильтровать в названии дату? |
Есть прога MEDOC, она делает через планировщик резервные копии файловв заданную папку. Каждый день
Так как база уже довольно большая, то размер одного файла 1,5 гига Мне же надо самый свежий копировать себе на NAS каждый день Вот стоит задача, удалить из папки файлы, старше 1 суток. То, что осталось, программой резервного копирования архивирую и перекидываю в NAS |
mariolast, что такое старше суток? Это только сегодня, или вчера+сегодня, или сейчас - 24часа?
|
Только сегодня
|
Код:
powershell -command "dir 'C:\temp' |? {($_.LastWriteTime).date -ne (get-date).Date} |del" |
mariolast,
Цитата:
Код:
@Echo Off |
mariolast, Если только за сегодня без привязки к имени
Код:
@Echo Off |
Время: 23:50. |
Время: 23:50.
© OSzone.net 2001-