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
Paaiškinimas
- Pirmiausia gauname "FileInfo" ir "DirectoryInfo" objektus "Path C: Backups".
- Abu "FileInfo" ir "DirectoryInfo" objektai turi "CreationTime" nuosavybę, todėl mes galime filtruoti kolekciją naudodami tą.
- Tada naudojamas -lt (mažiau nei) operatorius palygina objektų CreationTime su Get-Date (dabartine data) atimti 5 dienas.
- Tai palieka mus objektų, sukurtų daugiau nei prieš 5 dienas, kolekciją, kurią perduodame į "Pašalinti-elementą".
" Pro Tip"
Norėdami pamatyti, kas bus pašalintas, galite naudoti parametrą -WhatIf:
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item –WhatIf
Komandinė eilutė
Nors mes rekomenduojame naudoti vieną iš "PowerShell" metodų, nepasiekdami jokios smulkesnės informacijos, galite tai padaryti ir komandų eilutėje.
forfiles -p 'C:Backups' -s -m *.* -d -5 -c 'cmd /c del @path'
"Pro Tip"
Norėdami pamatyti, kokie failai bus ištrinti, galite naudoti echo.
forfiles -p 'C:Backups' -s -m *.* -d -5 -c 'cmd /c echo @file'