Удаление старых файлов и папок с помощью forfiles

Есть чудесная утилита forfiles,  которая позволят работать с файлами и папками с командной строки. Ее будем использовать для удаления старых файлов и папок. Проверяем есть ли она у вас в папке C:\Windows\system32, если нет – качаем, можно отсюда. Создаем папку e:\temp, создаем папки test, test1 и файл test.txt.  С помощью файловых менеджеров изменяем дату создания. В Total Commander Файл – Изменить атрибуты – изменение даты и времени. Теперь в командной строке вводим команду:

forfiles /P e:\temp1 /D -1 /C  “cmd /c if @isdir==TRUE rmdir /S /Q @file”

Тут ключ /P указывает путь к директории, в данном случае e:/temp1. Ключ D -1 ищет файлы и дректории дата которых на один день меньше текущей. Ключ /C запускает следующую команду “cmd”. Ключ /c команды cmd указывает выполнить и завершить последуещую команду, в данном случае rmdir. Далее если существует  директория, переменная isdir выдает TRUE, список директорий, попадающие под критерии передается следующей команде rmdir. Ключ /Q – не выводит на экран результат обработки команды, аналог echo off. Удаляя каталог – удаляются все файлы в нем.

Теперь рассмотрим как удалять файлы.

forfiles /P e:\temp1 /D -1 /C “cmd /c if @isdir==FALSE del @file”

Тут все тоже самое, только команде del передается список файлов для удаления.

Если нужно автоматизировать процес, создаем нижеуказанный батник removeoldfiles.bat, запихиваем его в наначенный задания и указываем когда запускать.

@echo ff
c:\windows\system32\forfiles /P e:\temp1 /D -1 /C “cmd /c if @isdir==TRUE rmdir /S /Q @file”
c:\windows\system32\forfiles /P e:\temp1 /D -1 /C “cmd /c if @isdir==FALSE del @file”

© mick, 2013.