Я хочу создать запланированный процесс в 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