Всем привет, что-то я долго не писал.
Казалось бы и было про что, но времени не было.
Но, вот сегодня появилось время и новая интересная задача, а точнее ее интересное решение.
Итак, очень часто у админа бывает какая-то файловая помойка, куда складываются сегодня очень, но со временем все менее и менее нужные файлы. Это могут быть логи, продажи, да все что угодно. Возникает вопрос: "Как удалить файлы старше чем Х дней", или "Какая команда удаляет файлы старше чем Х дней". Этот вопрос возник и у меня. Скажу, что решений в гугле я нашел массу, но последнее из найденных заставило меня написать его в своем блоге, т. к. оно действительно достойно того, что б о нем знало как можно больше людей.
Итак: Вариант 1.
Dim Fso
Dim Directory
Dim Modified
Dim Files
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Directory = Fso.GetFolder("H:\archive")
Set Files = Directory.Files
For Each Modified in Files
If DateDiff("D", Modified.DateLastModified, Now) > 90 Then Modified.Delete
Next
Сохраняем этот текст как script_del.vbs
Пишем в коммандной строке или .bat файле cscript script_del.vbs и наслаждаемся результатом.
Этот вариант проверен и работает и даже зашедулен (не было пока времени шедулить следующий, более интересный).
Итак, Вариант 2:
Forfiles -p c:\backup -s -m *.* -d -5 -c "cmd /c del /q @path"
Всего-лишь! Признаюсь честно: я только сейчас узнал за эту команду.
Нашел я это решение вот тут: http://scottelkin.com и говорю автору огромное спасибо.
Желаю вам бесконечного пинга и 100-летнего аптайма.
До связи :)
1 комментарий:
А как реализовать скрипт, который удаляет файлы в папке, начинающиеся с буквы E?
Отправить комментарий