Как периодически удалять файлы старше определенного времени в Windows?

Как периодически удалять файлы старше определенного времени в Windows?

Я хочу создать запланированный процесс в Windows (в частности, Windows 7), который каждые 3 часа будет удалять все файлы во всех папках старше 24 часов (как в Unix find -mtime +1). По сути, эквивалент Windows, если настроить это в моем Unix cron:

find $TRANSITDIR -mtime +1 -exec rm -rf {} \;

Хотя я, кажется, обнаружил, что эквивалент cron для Windows — этопланировщик, я просто не знаю команд Windows, которые позволяют это сделать.

Есть ли у кого-нибудь готовый скрипт планировщика?

решение1

Создайте пакетный файл со следующим содержимым:

REM Remove files older than 1 day
forfiles /p %1 /s /m * /c "cmd /c del @path /q" /d -1

Затем откройте Планировщик заданий Windows. Создайте базовую задачу для запуска программы, а в качестве аргумента укажите путь к папке в кавычках.

Объяснение команд

REMэто комментарий.

forfilesвыполнит команду для каждого файла. /p %1определяет путь, по которому находятся файлы ( %1означает значение первого аргумента командной строки, переданного скрипту). /sявляется рекурсивным (переходит в подпапки). /m *.*является маской имени файла. /c "cmd /c del @path"указывает, какую команду следует выполнить. /d -1означает файлы старше 1 дня.

В этом случае cmd /c del @pat /qhсоздает новый сеанс и запускает del(удаляет файл) на @path, путь к файлу для каждого файла, итерируемого forfiles. /qпредназначен для тихого режима, поэтому онне просит вас подтвердить для каталогов.

Тестирование

Заменить delна echo. Это распечатает каждый файл, который должен был быть удален, вместо того, чтобы удалить его.

решение2

Не совсем то, что вы хотите сделать, но я бы сказал, что автоматическая очистка ccleaner стоит того, чтобы ее учитывать, когда речь идет о Windows. Я использую ее для поиска и очистки файлов tmp для машин Windows.

Имеет ограниченный CLIhttp://www.piriform.com/docs/ccleaner/advanced-usage/command-line-parameters#Command-line_parameters_for_CCleaner_

Также, если вы являетесь пользователем shell и указали, что вам это нужно для W7, вы можете попробовать powershell:

http://www.google.es/search?q=powershell+remove+x+day+older+files

Связанный контент