Jak usunąć pliki starsze niż X dni w systemie Windows
Pokazaliśmy już, jak elastyczna może być powłoka Linuksa, ale to nie znaczy, że Windows jest już daleko w tyle. Oto dwie techniki, których możesz użyć w zależności od preferencji powłoki, cmd lub PowerShell.
PowerShell 3
Get-ChildItem -Path "C: \ Backup" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Usuń przedmiot
PowerShell 2
Get-ChildItem -Path "C: \ Backup" -Recurse | Gdzie-Object $ _. CreationTime -lt (Get-Date) .Dodatki (-5) | Usuń przedmiot
Wyjaśnienie
- Najpierw dostajemy obiekty FileInfo i DirectoryInfo w ścieżce C: \ Kopie zapasowe.
- Obiekty FileInfo i DirectoryInfo zawierają właściwość CreationTime, dzięki czemu możemy filtrować kolekcję przy użyciu tej właściwości.
- Operator -lt (mniejszy niż) jest następnie używany do porównywania właściwości CreationTime obiektów z Get-Date (bieżąca data) odejmowania 5 dni.
- To pozostawia nam kolekcję obiektów, które zostały utworzone ponad 5 dni temu, które przechodzimy do Remove-Item.
Pro Tip
Aby zobaczyć, co zostanie usunięte, możesz użyć parametru -WhatIf:
Get-ChildItem -Path "C: \ Backup" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Usuń element - WhatIf
Wiersz polecenia
Chociaż zalecamy użycie jednej z metod PowerShell, bez wchodzenia w szczegóły, możesz to zrobić również z wiersza poleceń.
forfiles -p "C: \ Kopie zapasowe" -s -m *. * -d -5 -c "cmd / c del @path"
Pro Tip
Aby zobaczyć, jakie pliki mają zostać usunięte, możesz użyć echa.
forfiles -p "C: \ Kopie zapasowe" -s -m *. * -d -5 -c "cmd / c echo @file"