Nous vous avons déjà montré à quel point le shell Linux peut être flexible , 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: \ 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
- Tout d'abord, 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 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 une collection d'objets créés il y a plus de 5 jours, que nous transmettons à Remove-Item.
Conseil 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 commandes
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.
pour les fichiers -p "C: \ Sauvegardes" -s -m *. * -d -5 -c "cmd / c del @chemin"
Conseil pro
Pour voir quels fichiers vont être supprimés, vous pouvez utiliser echo.
pour les fichiers -p "C: \ Sauvegardes" -s -m *. * -d -5 -c "cmd / c echo @file"