Jak odstranit soubory starší než X dnů v systému Windows
Už jsme vám ukázali, jak flexibilní může být Linux shell, ale to neznamená, že systém Windows je dále za sebou. Zde jsou dvě techniky, které můžete použít v závislosti na preferenci shell, cmd nebo PowerShell.
PowerShell 3
Get-ChildItem-Cesta "C: \ Backups" -Rekuruje | Kde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Odstranit položku
PowerShell 2
Get-ChildItem-Cesta "C: \ Backups" -Rekuruje | Kde-objekt $ _. CreationTime -lt (Get-Date) .AddDays (-5) Odstranit položku
Vysvětlení
- Nejprve získáme objekty FileInfo a DirectoryInfo v C: \ Backups.
- Objekty FileInfo a DirectoryInfo obsahují vlastnost CreationTime, takže tuto kolekci můžeme filtrovat.
- Operátor -lt (méně než) se pak používá k porovnání vlastností objektu CreationTime s objektem Get-Date (aktuální datum) odečíst 5 dní.
- To nám pak ponechává sbírku objektů, které byly vytvořeny před více než 5 dny, které předáme k odstranění položky.
Profesionální tip
Chcete-li zjistit, co bude odstraněno, můžete použít parametr -WhatIf:
Get-ChildItem-Cesta "C: \ Backups" -Rekuruje | Kde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Odstranit položku -WhatIf
Příkazový řádek
I když vám doporučujeme použít jednu z metod PowerShell, aniž byste se dostali do žádných detailů, můžete to také provést z příkazového řádku.
forfiles -p "C: \ Zálohování" -s -m *. * -d -5 -c "cmd / c del @ path"
Profesionální tip
Chcete-li zjistit, jaké soubory budou odstraněny, můžete použít echo.
forfiles -p "C: \ Zálohování" -s -m *. * -d -5 -c "cmd / c echo @file"