Найти тему
Свой Айтишник

Авто-Удаление старых файлов.

Оглавление

Привет! Знаю, давно меня не было, решил написать не большую статью, про то как автоматизировать процесс удаления файлов в ОС Windows.

Для кого и чего это будет полезно?

Ну во первых, для людей кто постоянно чистят файлы, например логи, мусорные файлы или прочие не нужные файлы.

Представьте, у вас есть некая папка с файлами, ну скажем с документами, с которыми вы уже поработали, забрали все нужные данные из них, закрыли его и успешно забыли. Да, такой файл можно удалить ручками, но что если таких файлов десятки или сотни? И вы хотите удалить все кроме сегодняшней даты?

Всё очень просто, давайте без сторонних программ напишем простой скрипт который будет удалять (очищать) все файлы старше 1 дня!

Написание скрипта.

Давайте сначала определимся где будет располагаться файл со скриптом. Я обычно в корне диска "С" создаю каталог "scripts" и уже там располагаю все свои скрипты.

С местом определились, теперь создадим текстовый файл (документ) и переименуем его в понятное название, в конце расширение .bat или .cmd У меня скрипт очищает логи программы которые старше 1 дня.

-2

Откроем наш созданный файл, текстовым редактором (можно блокнотом) и напечатаем или скопируйте у меня строчку кода:

Forfiles -p "C:\programm\Logging" -s -m *.* -d -1 -c "cmd /c del /q @path"

Давайте разбираться что это все значит!

Forfiles -p "C:\programm\Logging" - путь до папки откуда будут удаляться файлы.

-s - это рекурсивное удаление, проще говоря скрипт будет смотреть во всех папках и подпапках файлы, а не только в коне.

-m *.* - это маска по которой будут удалятся файлы, т.к. все файлы содержат точку, то удаление затронет все файлы (если ввести маску *.mp3 - то удаляться все музыкальные файлы с таким форматом)

-d -1 - количество дней, то есть у файлов дата изменения меньше или равна текущей дате. В нашем случае файлы старше 1 дня удалятся.

-c - скрипт будет выполняться для каждого файла

cmd /c del - команда удаления

/q - без подтверждения, без всяких запросов

path - возвращает полный путь до файла

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

Автоматизация скрипта.

Руками конечно можно запускать скрипт, но не гоже нам боярам руками работать =)

Давайте создадим задачу в планировщике Windows или в любом другом "шедулере" для того, чтобы скрипт наш сам запускался раз в неделю.

Запустим планировщик Windows или Task Sheduler, создадим папочку scripts

-3

В этой папке уже создадим новую задачу, дадим её понятое имя и описание при необходимости.

-4

Добавим расписание, в моем случае запускать раз в неделю по Воскресеньям.

-5

Укажем, что запускать (наш скрипт)

-6

и нажмем ОК.

Всё, на этом наши манипуляции завершены. Теперь каждое Воскресенье будет автоматически запускаться скрипт и удалять не нужные нам файлы, при этом файлы за текущий день будут не тронуты.

Данный скрипт так-же можно применить для очистки "мусора" с системного диска. Который лежит в папке %TEMP%

-7

Тем самым освободить драгоценное место на диске "С"

Области применения данному скрипту можно найти массу, главное подумать =)

На этом у меня все, всем спасибо дорогие читатели, хорошего настроения, всем пока!