Удаление устаревших файлов в Windows Удаляем файлы старше n дней

Простые действия в Windows не всегда простые:)
Для удаления файлов старше какого-либо периода в Unix отлично справляется нативная команда find.
Для Windows времен 2000 и XP приходилось использовать либо сторонние программы, либо писать на VBS.
Но начиная с Windows7 в поставке появилась утилита forfiles, которая легко решает данную задачу.

Напишем bat-файл для удаления файлов старше 30 дней из директории C:\temp\logs:

Где:

  • -p — Путь
  • -s — Разрешаем ходить рекурсивно
  • -d — Дата (Можно указать точную дату формата ‘dd.MM.yyyy’)
  • -30 — относится к ключу ‘-d’ и указывает, что ищем файлы старше 30 дней
  • -с —  Команда, которая выполняется для каждого файла

В двух словах:
Рекурсивно ищем все (можно искать по маске файла, добавив ключ ‘-m *.log’) файлы в директории  ‘C:\temp\logs’, которые старше 30 дней, далее каждое вхождение передаем команде  ‘cmd /c del @path /q‘ , где:

  • cmd — интерпретатор Windows
  • /c — выполнить cmd и закрыть
  • del — встроенная команда windows для удаления файлов
  • @path — адрес файла, который нам вернул forfiles.exe
  • /q — тихий режим

Утилита forfiles.exe прекрасно работает на windowsXP и даже на Windows2000, достаточно ее скопировать с windows7  и разместить по системному пути, например в %windir%, выложил forfiles.exe на обменник.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти HTML теги и атрибуты:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">