If-Koubou

Jak usunąć pliki starsze niż X dni w systemie Windows

Jak usunąć pliki starsze niż X dni w systemie Windows (Jak)

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 korzystanie z jednej z metod PowerShell, bez wchodzenia w szczegóły, można również zrobić to z wiersza polecenia.

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"