PowerShell 3
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-5) | Remove-Item
PowerShell 2
Get-ChildItem –Path “C:Backups” –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Remove-Item
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 celle-ci.
- 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, vous pouvez également le faire à partir de l’invite de commande, sans entrer dans les détails.
forfiles -p 'C:Backups' -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:Backups' -s -m *.* -d -5 -c 'cmd /c echo @file'