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

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

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

forfiles.exe -p C:\temp\logs -s -d -30 -c "cmd /c del @path /q"

Где:

  • -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 на обменник.

Рейтинг
( 2 оценки, среднее 3 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.