Powershell изтрива файлове от потребителски папки. Изтриване на файлове, по-стари от n дни. Създайте задача в Task Scheduler

Една от характеристиките най-новите версии Windows 10 е способността да се поддържа чист чрез автоматично изтриване на файлове, които са станали ненужни след определен период от време. В по-ранни версии на системата, които все още нямат тази функция, можете да използвате командна линия, конзола PowerShellи дори Диригент, въпреки че процедурата за почистване с помощта на последната не е толкова удобна.

Нека разгледаме и трите варианта.

Изтриване на стари файлове с File Explorer

Лента за изследване Windows 10и 8.1 съдържа инструмент, който ви позволява да сортирате всички файлове в директория по дата на модификация, тип, размер и някои други свойства. Да приемем, че искате да изтриете файлове, по-стари от един месец. Отидете до папката с остарелите файлове в нея и натиснете F3 на клавиатурата. Това ще ви отведе до секцията за търсене в лентата на Explorer.

Кликнете върху иконата "Дата на промяна"и изберете желания период от време от падащия списък, в случая месец.

Explorer веднага ще сортира всички файлове по даден параметър, така че просто трябва да ги изберете с мишката и да ги изпратите в Кошчето. Методът е прост, но не е много удобен, тъй като всичко трябва да се направи на ръка. Има много повече ефективен методизтриване на стари файлове и сега просто ще го разгледаме.

Изтриване на стари файлове от командния ред

За изтриване на файлове от "просрочен" ще използваме помощната програма на конзолата ForFiles.exe A, който отговаря за избирането на обект и извършването на определеното действие върху него. Помощната програма поддържа няколко опции, а именно:

- позволява ви да извършвате рекурсивно търсене.
/P- указва пътя до дял или директория.
- показва броя на дните от последната промяна.
/° С- задава командата за действие върху файла.

В отбор ForFilesможете също да посочите променливи, които връщат различни стойности, например, @файл, който връща името на файла и който ще използваме. Например изтрийте всички файлове, по-стари от 10 дни в дадена папка "Снимки"разположен в основата на системното устройство.

Отворете командния ред и изпълнете следната команда:

ForFiles /p "C:\Pictures" /s /d -10 /c "cmd /c del @file"

ForFiles / p "C:\Pictures" / s / d - 10 / c "cmd /c del @file"

Примерът използва три ключа /стр (път) , (рекурсия)и (брой дни) , както и командата за изтриване дели променлива за име на файл @файл. След като натиснем enter, ForFilesитериране на съдържанието на папката "Снимки", включително вложени директориии ще изтрие всички файлове, по-стари от 10 дни .

Както можете да видите, този метод е по-ефективен и по-бърз, освен това можете да го автоматизирате, като създадете задачи за него в Scheduler.

Забележка: след изпълнение на командата може да се появи съобщение в конзолата, че определен файл не може да бъде намерен. Не пречи, обикновено е така скрит файлбаза данни, която отговаря за настройките на директорията. Ако не е в папката (и на теория трябва да бъде), ForFiles уведомява потребителя.

Изтриване на стари файлове с PowerShell

Тук почти всичко е същото като в примера с командна линия, с изключение на това, че синтаксисът е различен. Да приемем, че нито пътят до папката с файловете, нито целите са се променили. Стартиране на конзолата PowerShellи изпълнете команда като тази.

Понякога трябва да изтриете файлове, по-стари от n дни. Например резервни копия. Можете да го направите ръчно, да ги сортирате по дата и да ги изтриете или можете да използвате скрипт. AT този примерще разгледаме скрипт за изтриване на файлове, по-стари от n дни и добавяне на задача към планировчика Windows сървър 2012R2.

1.

2.

Скрипт за изтриване на файлове, по-стари от n дни

Скриптът всъщност е много прост, създаден в PowerShell и изглежда така:

FORFILES /p F:\backup\ /s /m *.* /d -30 /c "CMD /c del /Q @FILE"

Където:
F:\резервно копие\- пътя в коя папка ще търсим файлове за изтриване
*.* — име (маска) на файловете
/d-30- по-стари от колко дни трябва да изтрием файлове.

Ето как изглежда в PowerShell:

Остава само да го изпълним и това е всичко.

Създайте задача в Task Scheduler

Всичко е наред, имаме сценарий. Можем да го направим ръчно, когато трябва да изчистим резервните си копия. Но защо да го правите ръчно? Ще инструктираме планировчика да изпълни нашия скрипт и сами да се отървем от рутинната работа.

И така, какво ни трябва за това?

За да започнем, нека отидем на Старт -> Контролен панел -> Административни инструменти"и бягай там" Планировчик на задачи«.

Изберете елемента " Създайте задача«:

В раздела " Общ» задайте името на задачата, нейното описание и потребителя, от който ще се изпълнява. По подразбиране това ще бъде потребителят, с който сте влезли в момента.

програма или скрипт

и посочете пътя към PowerShell:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

И в аргумента посочваме пътя до нашия скрипт, който създадохме по-рано:

Файл "c:\script\chistkaf.ps1"

Натиснете " Добре" още веднъж " Добре»

Всичко, върху това е създадена нашата задача. Остава да изчакаме, докато планираното ни действие приключи и да проверим дали всичко е конфигурирано правилно.