Sådan slettes filer, der er ældre end N dage automatisk i Windows - Winhelponline

How Delete Files Older Than N Days Automatically Windows Winhelponline

Windows 10 har indbyggede funktioner til at frigøre plads ved at slette gamle filer i %Midlertidig% bibliotek og Downloads folder. Windows 10-indstillinger har en mulighed ('Storage'), som automatisk rydder midlertidige filer dine apps ikke bruger, filer i de downloads, der ikke er blevet ændret i de sidste x dage, eller filer, der ligger i papirkurven i x dage.



windows 10 opbevaringsindstillinger oprydningsindstillinger



Diskoprydningsværktøjet rydder også filer i %Midlertidig% bibliotek, der ikke er åbnet i sidste 7 dage .



Diskoprydning og Opbevaringsindstillinger mål kun mod %Midlertidig% og Downloads mapper. For at slette filer, der er ældre end et bestemt antal dage i en 'brugerdefineret' mappeplacering som din Dokumenter mappe, skal du bruge en af ​​disse tre metoder:

Sådan slettes automatisk filer ældre end N dage i Windows

Nogle af nedenstående metoder giver dig mulighed for at bruge enten 'dato oprettet' eller 'dato ændret' egenskab for filer som en basislinie til at bestemme 'ældre' filer, alt efter din nødvendighed.

Metode 1. Slet filer, der er ældre end 'N' dage ved hjælp af File Explorer

Ved hjælp af Windows-søgning kan du nemt få listen over filer baseret på et valgt datointerval eller filer, der er ældre end en bestemt dato.



  1. Åbn den mappe, hvor du vil slette ældre filer.
  2. Klik på søgefeltet, eller tryk på F3-knappen på tastaturet.
  3. Klik på knappen Datomodificeret, og vælg en af ​​rullemenuerne, sig 'Sidste uge'.
    slet filer ældre end x dage i windows
  4. Windows-søgning filtrerer resultaterne med det samme. Vælg de filer, du vil slette, og tryk på Slet-tasten på tastaturet.

Vigtig: Windows-søgning ser som standard efter filer i den aktuelle mappe OG alle undermapper. For at begrænse søgninger til kun den aktuelle mappe , klik på knappen 'Aktuel mappe' på søgeværktøjslinjen / båndet.

Avanceret søgeforespørgsel: 'Date' -operatører

Hvis de forudindstillede datointervalmuligheder ikke passer dig, kan du indtaste en tilpasset søgeforespørgsel. Skriv følgende i søgefeltet for at filtrere filer fra et brugerdefineret datointerval:

datomodificeret: 1/1/2017 .. 31/12/2017

Dette finder filer, der er blevet ændret i det nævnte datointerval. Du kan også bruge datacreated: datatilgang: eller dato: (især til kamerabilleder) operatører. Noter det dato: operatøren bruger de datametadata (EXIF), der er optaget af kameraet.

RELATEREDE: Sådan søges efter filer oprettet mellem to datoer i Windows

Brug mindre end (for at finde filer, der ikke er blevet ændret efter 1. november 2017) < ) symbol med datomodificeret: operatør, som nedenfor:

datomodificeret:<11/1/‎2017

slet filer ældre end x dage i windows

Vælg filerne på listen, og slet dem.

Tip: I stedet for at skrive datointervallet manuelt, skal du skrive datomodificeret: eller datacreated: eller datatilgang: eller dato: i søgefeltet, og lad File Explorer vise datovælgeren for dig. Du kan derefter vælge en dato eller et datointerval fra pop op-vinduet. For at specificere et datointerval skal du vælge den første dato og trække markøren til det relevante felt.

Hvis du ønsker at slette ældre filer automatisk i stedet for at foretage en søgeforespørgsel hver gang, skal du oprette en batchfil eller PowerShell.


Metode 2: Slet filer, der er ældre end 'N' dage ved hjælp af kommandoprompt

Det ForFiles konsolværktøj (i Windows 7, Windows 8, Windows 8.1 og Windows 10) vælger en fil eller et sæt filer og udfører en kommando på den pågældende fil eller et sæt filer.

Forfiles Hjælp - Kommandolinjekontakter / P - Angiver stien til søgning. Standardmappen er den aktuelle arbejdsmappe (.). / S - Instruerer, at filer skal tilbageføres til underkataloger. Ligesom 'DIR / S'. / D - Vælg filer med en sidst ændrede dato. For eksempel betyder -365 for over et år siden, -30 betyder for en måned siden. / C 'kommando' - Angiver kommandoen, der skal udføres for hver fil. Kommandostrenge skal pakkes ind i dobbelt anførselstegn. Standardkommandoen er 'cmd / c echo @ file'. Følgende variabler kan bruges i kommandostrengen: @fil - returnerer navnet på filen. @fname - returnerer filnavnet uden udvidelse. @ext - returnerer kun filtypenavnet. @sti - returnerer den fulde sti til filen. @relpath - returnerer den relative sti til filen. @isdir - returnerer 'SAND', hvis en filtype er en mappe, og 'FALSK' for filer. @fsize - returnerer filens størrelse i byte. @fdate - returnerer den sidst ændrede dato for filen. @ftime - returnerer den sidst ændrede tid for filen.

For at se hele listen over kommandolinjeargumenter, der understøttes af dette værktøj, skal du skrive FORFILER /? i kommandoprompt.

For at finde og slette filer, der er ældre end bestemt antal dage ved hjælp af ForFiles, skal du åbne et kommandopromptvindue og skrive en af ​​følgende kommandoer:

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c del @path'

-eller-

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c del @file'

slet filer ældre end x dage i windows forfiles.exe kommandoen forfiles

Ovenstående antager, at mappestien er D: My Scripts og du vil slette filer, der er ældre end 30 dage. Tilpas mappestien og antallet af dage efter dine behov.

Du ser ingen outputmeddelelse, hvis kommandoen er vellykket. Hvis ingen filer matcher de angivne kriterier, vises meddelelsen FEJL: Ingen filer fundet med de angivne søgekriterier .

Yderligere tip: For at udføre en tørkørsel, før du prøver at slette filer, skal du udskifte kommandoen for at kontrollere, hvilke filer der er berørt for de angivne kriterier af med smed ud , som nedenfor:

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c echo @path'

-eller-

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c echo @file'

forfiler sletter ældre filer x dage ekko

Eventuelt kan du oprette en batchfil med ovenstående kommando. Eller for automatisk at køre kommandoen med bestemte intervaller ved hjælp af Task Scheduler.

Kør kommandoen automatisk ved hjælp af Task Scheduler

  1. Start Task Scheduler.
  2. I Task Scheduler skal du klikke på 'Task Scheduler Library'
  3. Klik på linket 'Opret opgave' i højre rude.
  4. I dialogboksen 'Opret opgave' skal du vælge fanen 'Generelt'.
  5. Nævn navnet på opgaven, sig 'Slet ældre filer i Mine dokumenter'
  6. Klik på fanen Udløsere, og klik på Ny.
  7. Vælg 'På en tidsplan' i rullelisten under 'Start opgaven' rullelisten.
  8. Du kan vælge at køre opgaven dagligt, ugentligt eller månedligt. Hvis du vælger ugentligt, skal du vælge ugedagen (e), hvor du vil have opgaven til at udløse.
  9. Når du er færdig, skal du klikke på OK-knappen.
  10. Klik på fanen 'Handlinger', og klik på knappen 'Ny ...'.
  11. Udfyld følgende i vinduet 'Ny handling':
    Handling: Start et program Program / script: C:  Windows  System32  ForFiles.exe Tilføj argumenter (valgfrit): / p '% userprofile%  Documents' / s / d -30 / c 'cmd / c del @file'

    slet filer, der er ældre end x dage i Windows-opgaveplanlægning

  12. Klik på OK.

En ny opgave oprettes, som når den køres sletter filer i din Dokumenter mappe, der ikke er blevet ændret i de sidste 30 dage.


Metode 3: Slet filer, der er ældre end N dage ved hjælp af Script

Spiceworks-forumbrugere har VBScripts, der kan slette filer, der er ældre end N antal dage på en bestemt mappesti rekursivt. Her er et simpelt script:

Ved fejl Genoptag Næste sæt oFileSys = WScript.CreateObject ('Scripting.FileSystemObject') sRoot = 'C:  Sti til gamle filer' Sti rod for at se efter filer i dag = Dato nMaxFileAge = 3 'Filer ældre end dette (i dage) vil blive slettet DeleteFiles (sRoot) Funktion DeleteFiles (ByVal sFolder) Indstil oFolder = oFileSys.GetFolder (sFolder) Indstil aFiles = oFolder.Files Indstil aSubFolders = oFolder.SubFolders For hver fil i aFiles dFileCreated = FormatDateTime (fil. ) Hvis DateDiff ('d', dFileCreated, i dag)> nMaxFileAge Derefter fil. Slet (sand) Afslut hvis næste for hver mappe i aSubFolders DeleteFiles (mappe. Vej) Næste slutfunktion

Kilde: Slet gamle filer og tomme undermapper - Script Center - Spiceworks

VIGTIG! Ovenstående script tager højde for egenskaben 'Dato oprettet' for varer i stedet for 'Dato for sidste ændring'. Hvis du vil slette filer, der ikke har været ændret i de sidste N dage skal du ændre følgende linje i scriptet:

dFileCreated = FormatDateTime (file.DateCreated, '2')

til

dFileCreated = FormatDateTime (file.DateLastModified, '2')

Det rydder filer, der er ældre end 3 dage. Alt du skal gøre er at ændre mappestien & maks. Filalderparametre som krævet i scriptet, gemme det med en .vbs udvidelse og kør den. Bemærk, at scriptet fungerer på den angivne mappe og undermapper rekursivt.

Her er et andet script, der sletter filer, der er ældre end N dage, og automatisk sletter tomme undermapper rekursivt. Se Slet filer, der er ældre end den maksimale alder (i dage) - Script Center - Spiceworks

RELATEREDE: Sådan finder du og sletter tomme mapper hurtigt i Windows


Metode 4: Slet filer, der er ældre end 'n' dage ved hjælp af PowerShell

Den tredje mulighed er at bruge PowerShell, som har en nyttig cmdlet til at finde og slette gamle filer.

Start PowerShell ( powershell.exe) , og skriv følgende kommando:

Get-ChildItem -Path [folder_path] -File -Recurse -Force | Hvor-objekt {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Fjern-element -Force

Eksempel:

Get-ChildItem -Path 'D:  Reports' -File -Recurse -Force | Hvor-objekt {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Fjern-element -Force

At bruge stier, der indeholder miljøvariabler som % brugerprofil% dokumenter , brug syntaksen nedenfor:

Get-ChildItem -Path '$ env: userprofile  documents' -File -Recurse -Force | Hvor-objekt {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Fjern-element -Force

(Bemærk: Mappenavnet i eksemplet er din brugerprofils Dokumenter folder. Skift mappens navn og sti i overensstemmelse med dine behov.)

Da vi brugte -Fil parameter fungerer den kun for filer. Så undermapper, der ikke er skrevet i de sidste n dage, forhindres i at blive slettet.

Ovenstående kommando har tre dele:

  1. Det Get-ChildItem cmdlet får listen over filer i mappen Dokumenter.
  2. Derefter ledes output til Hvor-objekt cmdlet, så filtreringen udføres, og vælg kun filer, der ikke er blevet ændret sidst x antal dage (i dette eksempel 30 dage ).
  3. Endelig rør vi output til Fjern-element cmdlet, som igen sletter de ældre filer, der er returneret af de to foregående cmdlets.

Tip 1: Liste over matchende filer, skal du ikke slette dem?

Hvis du vil liste de matchende filer og mapper uden at slette dem, skal du slippe | Fjern-element kontakt.

Get-ChildItem -Path [folder_path] -File -Recurse -Force | Hvor-objekt {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))}

Tip 2: Dæmp fejl, når du sletter elementer

For at undertrykke fejlmeddelelser (når du åbner eller sletter elementer) fra at blive vist i konsollen, skal du tilføje -ErrorAction Silently Fortsæt parameter.

Get-ChildItem -Path [folder_path] -File -Recurse -Force | Hvor-objekt {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Fjern-element -ErrorAction SilentlyContinue -Force

Slet gamle filer såvel som mapper

Bemærk, at ovenstående kommandoer kun sletter de gamle filer, men ikke de undermapper, der ikke er skrevet sidst x dage. Hvis du vil fjerne gamle mapper, skal du slippe -Fil argument i fra de tidligere forklarede kommandoer.

Eksempel:

Get-ChildItem -Path '$ env: userprofile  documents' -Recurse -Force | Hvor-objekt {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Fjern-element -Force

(Henvise: Get-ChildItem cmdlet-dokumentation på Microsoft-websted)

Vigtig: Det -Gør dig tilbage parameter dirigerer PowerShell til at hente filer rekursivt (i underkataloger). Fjern søgningen for at forhindre søgning efter filer i undermapper -Gør dig tilbage indstilling, så kun den aktuelle mappe behandles.


En lille anmodning: Hvis du kunne lide dette indlæg, så del dette?

En 'lille' andel fra dig ville alvorligt hjælpe meget med væksten i denne blog. Nogle gode forslag:
  • Pin det!
  • Del det til din yndlingsblog + Facebook, Reddit
  • Tweet det!
Så mange tak for din støtte, min læser. Det tager ikke mere end 10 sekunder af din tid. Deleknapperne er lige nedenfor. :)