Powershell tar bort filer från användarmappar. Ta bort filer äldre än n dagar. Skapa en uppgift i Task Scheduler

En av funktionerna senaste versionerna Windows 10 är möjligheten att hålla sig ren genom att automatiskt radera filer som blivit onödiga efter en viss tid. På tidigare versioner av systemet som ännu inte har den här funktionen kan du använda kommandorad, konsol PowerShell och även Dirigent, även om rengöringsproceduren med den senare inte är så bekväm.

Låt oss överväga alla tre alternativen.

Ta bort gamla filer med File Explorer

Utforskarens band Windows 10 och 8.1 innehåller ett verktyg som låter dig sortera alla filer i en katalog efter ändringsdatum, typ, storlek och några andra egenskaper. Låt oss säga att du vill ta bort filer som är äldre än en månad. Gå till mappen med filerna inaktuella i den och tryck på F3 på tangentbordet. Detta tar dig till söksektionen i Explorer-bandet.

Klicka på ikonen "Datum för ändring" och välj önskad tidsperiod från rullgardinsmenyn, i detta fall en månad.

Utforskaren kommer omedelbart att sortera alla filer efter given parameter, så du behöver bara välja dem med musen och skicka dem till papperskorgen. Metoden är enkel, men inte särskilt bekväm, eftersom allt måste göras för hand. Det finns mycket mer effektiv metod radera gamla filer och nu ska vi bara överväga det.

Ta bort gamla filer på kommandoraden

För att radera filer från "utgånget" vi kommer att använda konsolverktyget ForFiles.exe En som är ansvarig för att välja ett objekt och utföra den angivna åtgärden på det. Verktyget stöder flera alternativ, nämligen:

/S- låter dig utföra en rekursiv sökning.
/P- anger sökvägen till en partition eller katalog.
/D- anger antalet dagar sedan den senaste ändringen.
/C- ställer in kommandot för att agera på filen.

I ett lag För filer du kan också ange variabler som returnerar olika värden, t.ex. @fil, som returnerar filnamnet och som vi kommer att använda. Ta till exempel bort alla filer som är äldre än 10 dagar i en mapp "Bilder" finns i roten av systemenheten.

Öppna en kommandotolk och kör följande kommando:

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

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

Exemplet använder tre nycklar /s (väg) , /s (rekursion) och /d (antal dagar) , samt raderingskommandot del och filnamnsvariabel @fil. När vi trycker på enter, För filer iterera över innehållet i mappen "Bilder", inklusive kapslade kataloger och kommer att radera alla filer som är äldre än 10 dagar .

Som du kan se är den här metoden effektivare och snabbare, dessutom kan du automatisera den genom att skapa uppgifter för den i Schemaläggaren.

Notera: efter att ha utfört kommandot kan ett meddelande visas i konsolen att en viss fil inte kan hittas. Bry dig inte, det är det oftast dold fil databas som ansvarar för kataloginställningar. Om det inte finns i mappen (och i teorin borde det vara), Meddelar ForFiles användaren.

Ta bort gamla filer med PowerShell

Här är nästan allt detsamma som i exemplet med kommandorad, förutom att syntaxen är annorlunda. Låt oss anta att varken sökvägen till mappen med filerna eller målen har ändrats. Startar konsolen PowerShell och kör ett kommando som detta.

Ibland behöver du radera filer som är äldre än n dagar. Till exempel säkerhetskopior. Du kan göra det manuellt, sortera dem efter datum och ta bort dem, eller så kan du använda ett skript. PÅ detta exempel vi kommer att titta på ett skript för att ta bort filer äldre än n dagar och lägga till en uppgift i schemaläggaren Windows Server 2012R2.

1.

2.

Skript för att radera filer äldre än n dagar

Skriptet är faktiskt väldigt enkelt, skapat i PowerShell och ser ut så här:

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

Var:
F:\backup\- sökvägen i vilken mapp vi kommer att leta efter filer att radera
*.* — namn (mask) på filer
/d-30- äldre än hur många dagar vi behöver för att radera filer.

Så här ser det ut i PowerShell:

Det återstår bara att utföra det och det är det.

Skapa en uppgift i Task Scheduler

Allt är bra, vi har ett manus. Vi kan göra det manuellt när vi behöver städa upp våra säkerhetskopior. Men varför göra det manuellt? Vi kommer att instruera schemaläggaren att köra vårt skript och själva bli av med rutinarbete.

Så vad behöver vi för detta?

För att börja, låt oss gå till Start -> Kontrollpanelen -> Administrationsverktyg"och spring dit" Schemaläggaren«.

Välj objektet " Skapa en uppgift«:

På fliken " Allmän» ange namnet på uppgiften, dess beskrivning och användaren från vilken den ska köras. Som standard kommer det att vara den användare du för närvarande är inloggad som.

program eller skript

och ange sökvägen till PowerShell:

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

Och i argumentet anger vi sökvägen till vårt skript, som vi skapade tidigare:

Filen "c:\script\chistkaf.ps1"

Tryck " OK" ännu en gång " OK»

Allt, på detta är vår uppgift skapad. Det återstår att vänta tills vår planerade åtgärd är klar och kontrollera om allt har konfigurerats korrekt.