PowerShell 3
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item
PowerShell 2
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Remove-Item
vysvetlenie
- Najprv získame objekty FileInfo a DirectoryInfo v ceste C: Backups.
- Objekty FileInfo a DirectoryInfo obsahujú vlastnosť CreationTime, takže môžeme túto kolekciu filtrovať.
- Operátor -lt (menej ako) sa potom použije na porovnanie vlastností CreationTime objektov s Get-Date (aktuálny dátum), odpočítať 5 dní.
- Toto nám potom necháva zbierku objektov, ktoré boli vytvorené pred viac ako 5 dňami, ktoré prejdeme na položku Odstrániť.
Pro Tip
Ak chcete zistiť, čo bude odstránené, môžete použiť parameter -WhatIf:
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item –WhatIf
Príkazový riadok
Aj keď vám odporúčame použiť jednu z metód PowerShell, bez toho, aby ste sa dostali do žiadnej z podrobných detailov, môžete to urobiť aj z príkazového riadku.
forfiles -p 'C:Backups' -s -m *.* -d -5 -c 'cmd /c del @path'
Pro Tip
Ak chcete zistiť, ktoré súbory sa majú odstrániť, môžete použiť echo.
forfiles -p 'C:Backups' -s -m *.* -d -5 -c 'cmd /c echo @file'