Nous vous avons déjà montré la flexibilité de Linuxshell peut être, mais cela ne veut pas dire que Windows est 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: Sauvegardes” –Recurse | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Retirer l'objet
PowerShell 2
Get-ChildItem –Path “C: Sauvegardes” –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: sauvegardes.
- Les objets FileInfo et DirectoryInfo contiennent tous deux une propriété CreationTime, nous pouvons donc filtrer la collection à l'aide de cela.
- 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 alors avec une collection d'objets qui ont été créés il y a plus de 5 jours, que nous transmettons à Remove-Item.
Astuce Pro
Pour voir ce qui sera supprimé, vous pouvez utiliser le paramètre –WhatIf:
Get-ChildItem –Path “C: Sauvegardes” –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 de l'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"