Startpagina » hoe » Hoe verwijder je bestanden ouder dan X Days op Windows

    Hoe verwijder je bestanden ouder dan X Days op Windows

    We hebben je al laten zien hoe flexibel de Linux-shell kan zijn, maar dat wil niet zeggen dat Windows verder achterblijft. Hier zijn twee technieken die u kunt gebruiken, afhankelijk van uw shellvoorkeur, cmd of PowerShell.

    PowerShell 3

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

    PowerShell 2

    Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Verwijder voorwerp

    Uitleg

    • Eerst krijgen we FileInfo en DirectoryInfo objecten in het pad C: \ Backups.
    • Objecten van FileInfo en DirectoryInfo bevatten beide een CreationTime-eigenschap, zodat we de verzameling met die eigenschap kunnen filteren.
    • De operator -lt (minder dan) wordt vervolgens gebruikt om de CreationTime-eigenschap van de objecten te vergelijken met Get-Date (de huidige datum) 5 dagen aftrekken.
    • Dit laat ons achter met een verzameling objecten die meer dan 5 dagen geleden zijn gemaakt en die we doorgeven aan Remove-Item.

    Pro Tip

    Om te zien wat er zal worden verwijderd, kunt u de parameter -WhatIf gebruiken:

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

    Opdrachtprompt

    Hoewel we u aanraden om een ​​van de PowerShell-methoden te gebruiken, zonder dat u in een van de korrelige details raakt, kunt u dit ook doen via de opdrachtprompt..

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

    Pro Tip

    Om te zien welke bestanden worden verwijderd, kunt u echo gebruiken.

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