Comment supprimer des fichiers plus anciens que X Days sous Windows
Nous vous avons déjà montré à quel point le shell Linux pouvait être flexible, mais cela ne veut pas dire que Windows est encore plus en retard. Voici deux techniques que vous pouvez utiliser en fonction de vos préférences de shell, cmd ou PowerShell..
PowerShell 3
Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Retirer l'objet
PowerShell 2
Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Retirer l'objet
Explication
- Premièrement, nous obtenons les objets FileInfo et DirectoryInfo dans le chemin C: \ Backups..
- Les objets FileInfo et DirectoryInfo contiennent tous deux une propriété CreationTime. Nous pouvons donc filtrer la collection à l'aide de cette propriété..
- L'opérateur -lt (inférieur à) est ensuite utilisé pour comparer la propriété CreationTime des objets avec Get-Date (la date actuelle) soustraire 5 jours..
- Cela nous laisse ensuite avec une collection d'objets créés il y a plus de 5 jours, que nous passons à Remove-Item.
Astuce Pro
Pour voir ce qui sera supprimé, vous pouvez utiliser le paramètre -WhatIf:
Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Remove-Item -WhatIf
Invite de commande
Bien que nous vous recommandons d’utiliser l’une des méthodes PowerShell, sans entrer dans les détails, vous pouvez également le faire à partir d’une invite de commande..
forfiles -p "C: \ Sauvegardes" -s -m *. * -d -5 -c "cmd / c del @path"
Astuce Pro
Pour voir quels fichiers vont être supprimés, vous pouvez utiliser echo.
forfiles -p "C: \ Sauvegardes" -s -m *. * -d -5 -c "cmd / c echo @file"