Содержание:
1. Скрипт удаления файлов старше n-дней
2. Создание задания в планировщике задач
#Скрипт удаления файлов старше n-дней
Скрипт на самом деле очень простой, создается в PowerShell и выглядит он следующим образом:
FORFILES /p F:\backup\ /s /m *.* /d -30 /c "CMD /c del /Q @FILE"
Где:
F:\backup\ - путь, в какой папке мы будем с вами искать файлы для удаления *.* - имя (маска) файлов /d -30 - старше скольки дней нам необходимо удалить файлы.
Вот так это выглядит в PowerShell:
Осталось только его выполнить и все.
#Создание задания в планировщике задач
Все хорошо, у нас есть скрипт. Мы можем выполнять его вручную, когда необходимо очистить наши бекапы. Но зачем выполнять это вручную? Мы поручим планировщику запускать наш скрипт и избавимся сами от рутинной работы.
Итак, что нам для этого надо?
Для начала идем в "Пуск -> панель управления -> Администрирование" и запускаем там "Планировщик заданий".
Выбираем пункт "Создать задачу":
На вкладке "Общие" задаем имя задания, его описание и пользователя, от которого оно будет выполняться. По умолчанию там будет пользователь, под которым вы вошли в данный момент в систему.
Далее переходим на вкладку "Триггеры" и создаем расписание, когда мы будем запускать наше задания. У меня настроено в 10:00 каждые 2 дня.
Далее идем на вкладку "Действия" и задаем действие, которое будет выполняться. Выбираем "Запуск программы"
программу или сценарий
и указываем путь до PowerShell:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
А аргументе указываем путь до нашего скрипта, который мы создали ранее:
-File "c:\script\ochistkaf.ps1"
Нажимаем "Ок" и еще раз "Ок"
Все, на этом наше задание создано. Осталось дождаться, когда будет выполнено наше действие по расписанию и проверить, все ли правильно было настроено.
Не работает в планировщики задач, скрипт сам рабочий ...
Странно... У меня все работает отлично на нескольких серверах... Попробуйте поставить галочку "Выполнить с наивысшими правами" А какой код ошибки при выполнении задачи? Можно посмотреть в журнале
Все работает правильно на серверных системах , лично проверил. Проблемы были на win 10
Константин 31.10.2017 04:40
Здравствуйте А как сделать чтоб при удалении оставалось допустим последние 3 файла даже если они старше 30 дней?
Самый простой вариант - Вам необходимо выставить в скрипте кол-во дней, которые будут подходить под Ваши файлы!
а как сделать так, что бы удалялись файлы каждый 10 минут? Как указать минуты?
Александр 28.02.2020 09:28
У меня ругается вот так. forfiles.exe : ОШИБКА: Неправильный параметр или аргумент - &d&. DeleteFiles.ps1:1 знак:9 + CategoryInfo : NotSpecified: (ОШИБКА: Неправи...аргумент - &d&.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError