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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматическое удаление файлов старше 2х часов

Ответить
Настройки темы
CMD/BAT - Автоматическое удаление файлов старше 2х часов

Пользователь


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

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


Всем доброго времени суток.

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

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

Отправлено: 16:33, 10-04-2014

 

Ветеран


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

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


Код: Выделить весь код
@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:14, 10-04-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


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

Отправлено: 17:39, 10-04-2014 | #3


Ветеран


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

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


Цитата Den13V:
что с чем сравнивается? »
Ничто ни с чем. Просто из отсортированных по дате создания файлов оставляются только четыре самых "свежих".
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:54, 10-04-2014 | #4


Пользователь


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

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


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

Отправлено: 17:55, 10-04-2014 | #5


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


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

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


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

Отправлено: 13:41, 20-02-2018 | #6


Ветеран


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

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


SmiD55,
в коде
Цитата Georgio:
по дате создания файлов оставляются только четыре самых "свежих" »
Цитата Georgio:
/tc »
сортировка по дате создания, если убрать этот ключ, останется (по умолчанию) /tw - по дате изменения

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

Отправлено: 14:09, 20-02-2018 | #7


Ветеран


Contributor


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

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


Цитата 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%"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 16:18, 20-02-2018 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматическое удаление файлов старше 2х часов

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Поиск и удаление файлов с определенным расширением старше 1 года NoIZz Скриптовые языки администрирования Windows 2 22-10-2013 20:08
Любой язык - [решено] Удаление файлов старше N дней DOCznet Скриптовые языки администрирования Windows 2 27-09-2012 11:42
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. Joni Скриптовые языки администрирования Windows 6 11-07-2012 11:18
VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов white155 Скриптовые языки администрирования Windows 6 04-01-2012 00:42
Прочее - удаление файлов старше 10 дней admin666 Общий по Linux 1 23-07-2009 19:09




 
Переход