Hjemmeside » hvordan » Slik sletter du filer som er eldre enn X dager på Windows

    Slik sletter du filer som er eldre enn X dager på Windows

    Vi har allerede vist deg hvor fleksibel Linux-skallet kan være, men det er ikke å si at Windows er lenger bak. Her er to teknikker du kan bruke avhengig av shell preferanse, cmd eller PowerShell.

    PowerShell 3

    Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Fjerne gjenstand

    PowerShell 2

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

    Forklaring

    • For det første får vi FileInfo og DirectoryInfo-objekter i sti C: \ Backups.
    • FileInfo og DirectoryInfo-objekter inneholder begge en CreationTime-egenskap, slik at vi kan filtrere samlingen ved hjelp av det.
    • Operatøren -lt (mindre enn) brukes da til å sammenligne egenskapen CreationTime for objektene med Get-Date (gjeldende dato) trekke 5 dager.
    • Dette etterlater oss med en samling objekter som ble opprettet for mer enn 5 dager siden, som vi sender til Fjern-element.

    Pro Tips

    For å se hva som skal fjernes, kan du bruke parameteren -WhatIf:

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

    Ledeteksten

    Mens vi anbefaler at du bruker en av PowerShell-metodene, uten å komme inn i noen av de grusomme detaljene, kan du også gjøre det fra ledeteksten.

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

    Pro Tips

    For å se hvilke filer som skal slettes, kan du bruke ekko.

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