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

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

Den13V 10-04-2014 16:33 2335826

Автоматическое удаление файлов старше 2х часов
 
Всем доброго времени суток.

Есть папка в которой каждые пол часа создаются бекапы.
Подскажите как сделать так, чтобы удалялись только бекапы созданные более 2х часов назад от текущего времени, т.е. если батник запустился 17:31:00, то надо удалить все файлы созданные до 15:31:00.
В имени файла указано время создания (Half-Hour_time_15.01.25.bak) 15.01.25 - это время создания файла в формате HH:mm:ss с заменой : на точку?

Заранее очень благодарен.

Georgio 10-04-2014 17:14 2335845

Код:

@echo off
set folder=D:\Test
for /f "tokens=2 delims=:" %%i in ('
 dir "%folder%" /b /o-d /tc^| findstr /n "^"^| findstr /bv [1-4]:
') do (
 del "%folder%\%%i"
)
exit /b


Den13V 10-04-2014 17:39 2335861

Можешь расписать принцип его работы для чайника.
Точнее работы команды for, что с чем сравнивается?

Georgio 10-04-2014 17:54 2335870

Цитата:

Цитата Den13V
что с чем сравнивается? »

Ничто ни с чем. Просто из отсортированных по дате создания файлов оставляются только четыре самых "свежих".

Den13V 10-04-2014 17:55 2335871

Ясно, спасибо.

SmiD55 20-02-2018 13:41 2799121

А как сделать то же самое, но не просто удаление файлов старше 2-х часов, а файлов, создание которых по времени больше, чем время изменения папки, где они лежат? А то в таком варианте бэкапирование теряет смысл.. Сервак упал, очередные бэкапы не создаются, время идет, через два часа папка с резервными копиями пустая...

alpap 20-02-2018 14:09 2799124

SmiD55,
в коде
Цитата:

Цитата Georgio
по дате создания файлов оставляются только четыре самых "свежих" »

Цитата:

Цитата Georgio
/tc »

сортировка по дате создания, если убрать этот ключ, останется (по умолчанию) /tw - по дате изменения

но вам похоже другая задача нужна
но этой вашей задачи пока никто ни видел ни слышал, если опишете полностью вашу задачу (вероятно стоит создать новую тему), ответят вам точнее

megaloman 20-02-2018 16:18 2799166

Цитата:

Цитата Georgio
из отсортированных по дате создания файлов оставляются только четыре самых "свежих". »

Если
Цитата:

Цитата Den13V
каждые пол часа создаются бекапы. »

и надо хранить бэкапы 2 часа, то нужно всего 4 последних.
Цитата:

Цитата SmiD55
Сервак упал, очередные бэкапы не создаются, время идет, через два часа папка с резервными копиями пустая... »

Да пусть хоть год сервер не делает бэкапы, но 4 последних самых свежих бэкапа годовой давности будут присутствовать, пока сервер не станет делать новые бэкапы. Вот еще вариант с той же идеей Georgio
Код:

@Echo Off
Set "BoxArc=Z:\Box_Arc"
Set "FileBak=Half-Hour_time_??.??.??.bak"
Set /A NBak=4

FOR /F "usebackq skip=%NBak% delims=" %%f IN (`2^>nul Dir /B /A:-D /O:-D /T:C "%BoxArc%\%FileBak%"`) DO Del "%BoxArc%\%%f%"



Время: 20:34.

Время: 20:34.
© OSzone.net 2001-