Så här tar du bort filer som är äldre än X dagar på Windows
Vi har redan visat dig hur flexibelt Linux-skalet kan vara, men det är inte att säga att Windows är längre bakom sig. Här är två tekniker du kan använda beroende på ditt skal, CMD eller PowerShell.
PowerShell 3
Get-ChildItem -Path "C: \ Backups" -Recurse | Var-Object CreationTime -lt (Get-Date) .AddDays (-5) | Ta bort sak
PowerShell 2
Get-ChildItem -Path "C: \ Backups" -Recurse | Var-objekt $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Ta bort sak
Förklaring
- Först får vi FileInfo och DirectoryInfo-objekt i sökväg C: \ Backups.
- FileInfo och DirectoryInfo-objekten innehåller båda en CreationTime-egenskap, så vi kan filtrera samlingen med det.
- Operatören -lt (mindre än) används då för att jämföra egenskapen CreationTime för objekten med Get-Date (det aktuella datumet) subtrahera 5 dagar.
- Detta lämnar oss sedan med en samling objekt som skapades för mer än 5 dagar sedan, vilket vi överför till Remove-Item.
Proffstips
För att se vad som ska tas bort kan du använda parametern -WhatIf:
Get-ChildItem -Path "C: \ Backups" -Recurse | Var-Object CreationTime -lt (Get-Date) .AddDays (-5) | Ta bort-objekt-vem som helst
Command Prompt
Medan vi rekommenderar att du använder en av PowerShell-metoderna utan att komma in i någon av de snygga detaljerna kan du också göra det från kommandotolken.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @ path"
Proffstips
För att se vilka filer som ska raderas kan du använda echo.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @fil"