/ / Comment supprimer des fichiers antérieurs à X jours sous Windows

Comment supprimer des fichiers plus anciens que X Days sous Windows

image

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

image

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"

image