Hemsida » hur » Så här tar du bort filer som är äldre än X dagar på Windows

    Så här tar du bort filer som är äldre än X dagar på Windows

    Vi har redan visat dig hur flexibelt Linux-skalet kan vara, men det är inte att säga att Windows är längre bakom sig. Här är två tekniker du kan använda beroende på ditt skal, CMD eller PowerShell.

    PowerShell 3

    Get-ChildItem -Path "C: \ Backups" -Recurse | Var-Object CreationTime -lt (Get-Date) .AddDays (-5) | Ta bort sak

    PowerShell 2

    Get-ChildItem -Path "C: \ Backups" -Recurse | Var-objekt $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Ta bort sak

    Förklaring

    • Först får vi FileInfo och DirectoryInfo-objekt i sökväg C: \ Backups.
    • FileInfo och DirectoryInfo-objekten innehåller båda en CreationTime-egenskap, så vi kan filtrera samlingen med det.
    • Operatören -lt (mindre än) används då för att jämföra egenskapen CreationTime för objekten med Get-Date (det aktuella datumet) subtrahera 5 dagar.
    • Detta lämnar oss sedan med en samling objekt som skapades för mer än 5 dagar sedan, vilket vi överför till Remove-Item.

    Proffstips

    För att se vad som ska tas bort kan du använda parametern -WhatIf:

    Get-ChildItem -Path "C: \ Backups" -Recurse | Var-Object CreationTime -lt (Get-Date) .AddDays (-5) | Ta bort-objekt-vem som helst

    Command Prompt

    Medan vi rekommenderar att du använder en av PowerShell-metoderna utan att komma in i någon av de snygga detaljerna kan du också göra det från kommandotolken.

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

    Proffstips

    För att se vilka filer som ska raderas kan du använda echo.

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