Már megmutattuk, mennyire rugalmas lehet a Linux shell , de ez nem azt jelenti, hogy a Windows még hátrébb van. Itt van két technika, amelyeket a shell beállításaitól függően használhat, a cmd vagy a PowerShell.
PowerShell 3
Get-ChildItem –Path “C: \ Backups” –Recurse | Where-Object CreationTime –lt (Get-Date) .AdDDays (-5) | Elem eltávolítása
PowerShell 2
Get-ChildItem –Path “C: \ Backups” –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Elem eltávolítása
Magyarázat
- Először FileInfo és DirectoryInfo objektumokat kapunk a Path C: \ Backups fájlban.
- A FileInfo és a DirectoryInfo objektumok egyaránt tartalmaznak CreationTime tulajdonságot, így ennek segítségével szűrhetjük a gyűjteményt.
- A –lt (kevesebb, mint) operátort használjuk az objektumok CreationTime tulajdonságának összehasonlításához a Get-Date (az aktuális dátum) 5 nap kivonásával.
- Ezután több mint 5 napja létrehozott objektumok gyűjteménye marad, amelyet átadunk az Remove-Item-nek.
Profi tipp
Az eltávolításhoz használhatja a –WhatIf paramétert:
Get-ChildItem –Path “C: \ Backups” –Recurse | Where-Object CreationTime –lt (Get-Date) .AdDDays (-5) | Elem eltávolítása –WhatIf
Parancssor
Bár azt javasoljuk, hogy használja a PowerShell egyik módszerét, anélkül, hogy belemennénk a szemcsés részletekbe, a parancssorból is megteheti.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"
Profi tipp
Az echo használatával megtekintheti, hogy mely fájlokat fogják törölni.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"