Ako odstrániť súbory staršie ako X dní v systéme Windows
Už sme vám ukázali, aký flexibilný môže byť Linux shell, ale to neznamená, že Windows je ďalej za sebou. Tu sú dve techniky, ktoré môžete použiť v závislosti od preferencie shell, cmd alebo PowerShell.
PowerShell 3
Get-ChildItem-Cesta "C: \ Zálohovanie" -Rekurse | Kde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Odstrániť položku
PowerShell 2
Get-ChildItem-Cesta "C: \ Zálohovanie" -Rekurse | Kde-Object $ _ VytvorenieTime -lt (Get-Date) .AddDays (-5) Odstrániť položku
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 vlastnosti CreationTime objektov s Get-Date (aktuálnym dátumom) odčítaním 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-Cesta "C: \ Zálohovanie" -Rekurse | Kde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Odstrániť položku -WhatIf
Príkazový riadok
Zatiaľ čo odporúčame použiť jednu z metód PowerShell, bez toho, aby ste sa dostali do niektorých detailov, môžete to urobiť aj z príkazového riadka.
forfiles -p "C: \ Zálohovanie" -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: \ Zálohovanie" -s -m *. * -d -5 -c "cmd / c echo @file"