Tiedostojen poistaminen vanhemmista kuin X-päivät Windowsissa
Olemme jo osoittaneet, kuinka joustava Linux-kuori voi olla, mutta se ei tarkoita sitä, että Windows on jäljessä. Tässä on kaksi tekniikkaa, joita voit käyttää riippuen kuoriasetuksesta, cmd tai PowerShell.
PowerShell 3
Get-ChildItem -Path “C: Backups” -Recurse | Missä-Objektin luominenaika -lt (Päivämäärä) .Lisäpäiviä (-5) | Poista esine
PowerShell 2
Get-ChildItem -Path “C: Backups” -Recurse | Missä-objekti $ _. CreationTime -lt (Get-Date) .Lisäpäiviä (-5) | Poista esine
Selitys
- Ensinnäkin saamme FileInfo- ja DirectoryInfo-objektit P: ssä C: Backups.
- FileInfo ja DirectoryInfo -objektit sisältävät molemmat CreationTime-ominaisuuden, joten voimme suodattaa kokoelman käyttämällä sitä.
- -Lt (vähemmän kuin) operaattoria käytetään sitten vertaamaan objektin CreationTime-ominaisuutta Get-Date (nykyinen päivämäärä) vähentämällä 5 päivää.
- Tämän jälkeen jätämme meidät kokoelma esineitä, jotka on luotu yli 5 päivää sitten ja jotka siirrämme Poista-kohtaan.
Pro Vihje
Jos haluat nähdä, mitä poistetaan, voit käyttää -WhatIf-parametria:
Get-ChildItem -Path “C: Backups” -Recurse | Missä-Objektin luominenaika -lt (Päivämäärä) .Lisäpäiviä (-5) | Poista-kohde -Mitäpä
Komentokehote
Suosittelemme, että käytät jotakin PowerShell-menetelmää, mutta et pääse mihinkään teräviin tietoihin, joita voit myös tehdä komentoriviltä.
forfiles -p "C: Backups" -s -m *. * -d -5 -c "cmd / c del @path"
Pro Vihje
Jos haluat nähdä, mitkä tiedostot poistetaan, voit käyttää echoa.
forfiles -p "C: Backups" -s -m *. * -d -5 -c "cmd / c echo @file"