Войти

Показать полную графическую версию : [решено] Удаление старых бэкап файлов


Starter1
08-06-2012, 09:52
Рылся в поисковике и на форуме везде нашёл только удаление файлов по дате. В прицепе оно и надо но всё же это не правильно. Так как могут все бэкапы быть старше определённой даты и значит они все удалятся, что естественно не должно быть. Помогите пожалуйста реализовать код или поправить из этой темы (http://forum.oszone.net/thread-186889.html) так чтобы удалялись все старые файлы но чтобы оставались 3 последние папки бэкапа. Заранее спасибо! :).

Iska
08-06-2012, 10:25
Удаление файлов по дате (http://forum.oszone.net/thread-236176.html)

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "skip=3 delims=" %%i in ('dir "*.bkf" /b /a:-d /o:-d 2^>nul') do echo del /f /q "%%i"

endlocal
exit /b 0
Если получается корректный список файлов — уберите «echo» для реального применения команды «del».

Starter1
08-06-2012, 21:13
Спасибо вроде работает. Только чуть изменил код:
setlocal enableextensions enabledelayedexpansion
for /f "skip=3 delims=" %%i in ('dir "*.*" /b /a:d /o:-d 2^nul') do rd /s /q "%%i"
endlocal

Iska
08-06-2012, 22:40
Starter1, прошу прощения, я что-то не доглядел, что речь шла про папки:
…оставались 3 последние папки бэкапа. »

CyberMuesli
12-06-2012, 15:36
Часто вижу подобные темы и не очень понимаю, что мешает использовать по первым числам полный бэкап и в остальные - инкрементальный. Дополнительно выдача дисковых квот + фильтр по размерам и расширениям при бэкапе. При совмещении всех методов у меня бэкапы хранятся ГОДАМИ и бывает, требуются файлы, которые были правильными год назад, а потом какой-то давно уволенный сотрудник их безнадежно испортил, никакие три последних бэкапа тут уже не помогут.




© OSzone.net 2001-2012