Hjemmeside » hvordan » Sådan slettes filer, der er eldre end X dage på Windows

    Sådan slettes filer, der er eldre end X dage på Windows

    Vi har allerede vist dig, hvor fleksibel Linux skalen kan være, men det er ikke at sige, at Windows er længere. Her er to teknikker, du kan bruge afhængigt af din shell præference, cmd eller PowerShell.

    PowerShell 3

    Get-ChildItem -Path "C: \ Backups" -Recurse | Hvor-Object CreationTime -lt (Get-Date) .AddDays (-5) | Fjern-element

    PowerShell 2

    Get-ChildItem -Path "C: \ Backups" -Recurse | Hvor-objekt $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Fjern-element

    Forklaring

    • For det første får vi FileInfo og DirectoryInfo objekter i sti C: \ Backups.
    • FileInfo og DirectoryInfo-objekter indeholder begge en CreationTime-egenskab, så vi kan filtrere samlingen ved hjælp af det.
    • Den -lt (mindre end) operatør bruges derefter til at sammenligne egenskabens CreationTime-egenskab med Get-Date (den aktuelle dato) trække 5 dage.
    • Dette efterlader os med en samling af objekter, der blev oprettet for mere end 5 dage siden, som vi sender til Fjern-vare.

    Pro Tip

    For at se, hvad der fjernes, kan du bruge parameteren -WhatIf:

    Get-ChildItem -Path "C: \ Backups" -Recurse | Hvor-Object CreationTime -lt (Get-Date) .AddDays (-5) | Fjern-vare - hvad er det?

    Kommandoprompt

    Mens vi anbefaler, at du bruger en af ​​PowerShell-metoderne uden at komme ind i nogen af ​​de gritty detaljer, kan du også gøre det fra kommandoprompten.

    forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"

    Pro Tip

    For at se, hvilke filer der skal slettes, kan du bruge ekko.

    forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c ekko @fil"