Удаление устаревших файлов в 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 на обменник.

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

avatar
  Подписаться  
Уведомление о