Comment supprimer automatiquement des fichiers de plus de N jours sous Windows
Windows 10 a des fonctionnalités intégrées pour libérer de l'espace en supprimant les anciens fichiers du répertoire %temp%
et du dossier Downloads
. Les paramètres de Windows 10 ont une option («Stockage») qui efface automatiquement les fichiers temporaires que vos applications n'utilisent pas, les fichiers des Téléchargements qui n'ont pas été modifiés au cours des x derniers jours ou les fichiers se trouvant dans la Corbeille pendant x jours.

De plus, l'outil de nettoyage de disque efface les fichiers du répertoire %temp%
qui n'ont pas été consultés au cours des 7 derniers jours.
Cependant, les paramètres de nettoyage et de stockage du disque ciblent uniquement les dossiers %temp%
et Downloads
. Pour supprimer des fichiers antérieurs à un certain nombre de jours dans un emplacement de dossier «personnalisé» tel que votre dossier Documents
, vous devez utiliser l'une de ces trois méthodes:
Comment supprimer automatiquement des fichiers de plus de N jours dans Windows
Certaines des méthodes ci-dessous vous permettent d'utiliser la propriété «date de création» ou «date de modification» des fichiers comme référence pour déterminer les fichiers «plus anciens», selon votre besoin.
Méthode 1. Supprimer les fichiers plus anciens que «N» jours à l'aide de l'Explorateur de fichiers
À l'aide de la recherche Windows, vous pouvez facilement obtenir la liste des fichiers en fonction d'une plage de dates sélectionnée ou des fichiers antérieurs à une certaine date.
- Ouvrez le dossier dans lequel vous souhaitez supprimer les fichiers plus anciens.
- Cliquez sur le champ de recherche ou appuyez sur le bouton F3 du clavier.
- Cliquez sur le bouton Date de modification et choisissez l'une des options déroulantes, dites «La semaine dernière».
- La recherche Windows filtrera les résultats instantanément. Sélectionnez les fichiers que vous souhaitez supprimer et appuyez sur la touche Suppr de votre clavier.
Important: Par défaut, la recherche Windows recherche les fichiers dans le dossier actuel ET tous les sous-dossiers. Pour limiter les recherches au dossier actuel uniquement, cliquez sur le bouton «Dossier actuel» dans la barre d'outils / le ruban de recherche.
Requête de recherche avancée: opérateurs «Date»
Si les options de plage de dates prédéfinies ne vous conviennent pas, vous pouvez saisir une requête de recherche personnalisée. Dans la zone de recherche, tapez ce qui suit pour filtrer les fichiers d'une plage de dates personnalisée:
date de modification: 1/1/2017 .. 31/12/2017
Ceci trouve les fichiers qui ont été modifiés pendant ladite plage de dates. Vous pouvez également utiliser les datecreated:
dateaccessed:
ou date:
(en particulier pour les images de caméra). Notez cette date:
opérateur utilise les métadonnées de date (EXIF) enregistrées par la caméra.
CONNEXES: Comment rechercher des fichiers créés entre deux dates dans Windows
Pour rechercher des fichiers qui n'ont pas été modifiés après le 1er novembre 2017, utilisez le symbole inférieur à ( <
) avec l'opérateur datemodifed:
comme ci-dessous:
date de modification: <11/1/2017

Sélectionnez les fichiers dans la liste et supprimez-les.
Conseil: Au lieu de taper manuellement la plage de dates, saisissez l' datemodified:
ou datecreated:
or dateaccessed:
or date:
dans la zone de recherche et laissez l'Explorateur de fichiers afficher le sélecteur de date pour vous. Vous pouvez ensuite choisir une date ou une plage de dates dans la fenêtre contextuelle. Pour spécifier une plage de dates, sélectionnez la première date et faites glisser le curseur vers le champ approprié.
Si vous souhaitez supprimer automatiquement les fichiers plus anciens plutôt que d'effectuer une requête de recherche à chaque fois, vous devez créer un fichier de commandes ou PowerShell.
Méthode 2: supprimer des fichiers plus anciens que «N» jours à l'aide de l'invite de commandes
L'outil de console ForFiles
(sous Windows 7, Windows 8, Windows 8.1 et Windows 10) sélectionne un fichier ou un ensemble de fichiers et exécute une commande sur ce fichier ou ensemble de fichiers.
Aide Forfiles - Commutateurs de ligne de commande / P - Indique le chemin pour commencer la recherche. Le dossier par défaut est le répertoire de travail actuel (.). / S - Demande aux fichiers de récurser dans les sous-répertoires. Comme "DIR / S". / D - Sélectionnez les fichiers avec une date de dernière modification. Par exemple, -365 signifie il y a plus d'un an, -30 signifie il y a un mois. / C "commande" - Indique la commande à exécuter pour chaque fichier. Les chaînes de commandes doivent être entourées de guillemets doubles. La commande par défaut est "cmd / c echo @file". Les variables suivantes peuvent être utilisées dans la chaîne de commande: @file - renvoie le nom du fichier. @fname - renvoie le nom du fichier sans extension. @ext - renvoie uniquement l'extension du fichier. @path - retourne le chemin complet du fichier. @relpath - retourne le chemin relatif du fichier. @isdir - renvoie "TRUE" si un type de fichier est un répertoire, et "FALSE" pour les fichiers. @fsize - retourne la taille du fichier en octets. @fdate - retourne la dernière date de modification du fichier. @ftime - renvoie la dernière heure modifiée du fichier.
Pour afficher la liste complète des arguments de ligne de commande pris en charge par cet outil, tapez FORFILES /?
dans l'invite de commande.
Pour rechercher et supprimer des fichiers antérieurs à un certain nombre de jours à l'aide de ForFiles, ouvrez une fenêtre d'invite de commandes et tapez l'une des commandes suivantes:
ForFiles / p "D: \ Mes scripts" / s / d -30 / c "cmd / c del @path"
-ou-
ForFiles / p "D: \ Mes scripts" / s / d -30 / c "cmd / c del @file"

Ce qui précède suppose que le chemin du dossier est D:\My Scripts
et que vous souhaitez supprimer les fichiers de plus de 30 jours. Personnalisez le chemin d'accès au dossier et le nombre de jours selon vos besoins.
Vous ne verrez aucun message de sortie si la commande réussit. Si aucun fichier ne correspond aux critères spécifiés, vous verrez le message ERREUR: Aucun fichier trouvé avec les critères de recherche spécifiés .
Astuce supplémentaire: pour effectuer un essai à vide avant d'essayer de supprimer des fichiers, pour vérifier quels fichiers sont affectés pour les critères spécifiés, remplacez la commande del
par echo
, comme ci-dessous:
ForFiles / p "D: \ Mes scripts" / s / d -30 / c "cmd / c echo @path"
-ou-
ForFiles / p "D: \ Mes scripts" / s / d -30 / c "cmd / c echo @file"

Facultativement, vous pouvez créer un fichier de commandes avec la commande ci-dessus. Ou pour exécuter automatiquement la commande à des intervalles spécifiés à l'aide du Planificateur de tâches.
Exécutez la commande automatiquement à l'aide du Planificateur de tâches
- Lancez le Planificateur de tâches.
- Dans le Planificateur de tâches, cliquez sur «Bibliothèque du Planificateur de tâches»
- Cliquez sur le lien «Créer une tâche» dans le volet droit.
- Dans la boîte de dialogue «Créer une tâche», sélectionnez l'onglet «Général».
- Mentionnez le nom de la tâche, dites «Supprimer les fichiers plus anciens dans Mes documents»
- Cliquez sur l'onglet Déclencheurs, puis cliquez sur Nouveau.
- Sélectionnez «Sur un calendrier» dans la liste déroulante sous la zone de liste déroulante «Commencer la tâche».
- Vous pouvez choisir d'exécuter la tâche quotidiennement, hebdomadairement ou mensuellement. Si vous choisissez hebdomadaire, sélectionnez le ou les jours de la semaine où vous souhaitez que la tâche se déclenche.
- Une fois terminé, cliquez sur le bouton OK.
- Cliquez sur l'onglet «Actions», puis sur le bouton «Nouveau…».
- Dans la fenêtre «Nouvelle action», remplissez les champs suivants:
Action: Démarrez un programme Programme / script: C: \ Windows \ System32 \ ForFiles.exe Ajoutez des arguments (facultatif): / p "% userprofile% \ Documents" / s / d -30 / c "cmd / c del @file"
- Cliquez sur OK.
Une nouvelle tâche est créée qui, lorsqu'elle est exécutée, supprime les fichiers de votre dossier Documents
qui n'ont pas été modifiés au cours des 30 derniers jours.
Méthode 3: supprimer des fichiers de plus de N jours à l'aide de Script
Les utilisateurs du forum Spiceworks ont des VBScripts qui peuvent supprimer de manière récursive des fichiers antérieurs à N nombre de jours sur un chemin de dossier spécifié. Voici un script simple:
En cas d'erreur, reprendre le prochain ensemble oFileSys = WScript.CreateObject ("Scripting.FileSystemObject") sRoot = "C: \ Path To Old Files" 'Racine du chemin pour rechercher les fichiers aujourd'hui = Date nMaxFileAge = 3' Fichiers plus anciens que cela (en jours) sera supprimé DeleteFiles (sRoot) Fonction DeleteFiles (ByVal sFolder) Set oFolder = oFileSys.GetFolder (sFolder) Set aFiles = oFolder.Files Set aSubFolders = oFolder.SubFolders Pour chaque fichier dans aFiles dFileCreated = FormatDateTime (file.DateCreated, "2" ) If DateDiff ("d", dFileCreated, today)> nMaxFileAge Then file.Delete (True) End If Next pour chaque dossier dans aSubFolders DeleteFiles (folder.Path) Next End Function
Source: Supprimer les anciens fichiers et les sous-dossiers vides - Script Center - Spiceworks
$config[ads_text6] not foundIMPORTANT! Le script ci-dessus prend en compte la propriété «Date de création» des éléments au lieu de «Date de dernière modification». Si vous souhaitez supprimer des fichiers qui n'ont pas été modifiés au cours des N derniers jours, modifiez la ligne suivante dans le script:
dFileCreated = FormatDateTime (file.DateCreated, "2")
à
dFileCreated = FormatDateTime (file.DateLastModified, "2")
Il efface les fichiers de plus de 3 jours. Tout ce que vous devez faire est de modifier le chemin d'accès au dossier et les paramètres d'âge maximal du fichier comme requis dans le script, l'enregistrer avec une extension .vbs
et l'exécuter. Notez que le script fonctionne récursivement sur le dossier et les sous-dossiers spécifiés.
Voici un autre script qui supprime les fichiers de plus de N jours et efface automatiquement les sous-dossiers vides de manière récursive. Voir Supprimer des fichiers de plus de l'âge maximum (en jours) - Script Center - Spiceworks
CONNEXES: Comment rechercher et supprimer rapidement des dossiers vides dans Windows
Méthode 4: supprimer des fichiers antérieurs à «n» jours à l'aide de PowerShell
La troisième option consiste à utiliser PowerShell, qui possède une applet de commande utile pour rechercher et supprimer les anciens fichiers.
Démarrez PowerShell ( powershell.exe)
et tapez la commande suivante:
Get-ChildItem -Path [chemin_dossier] -Fichier -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -Force
Exemple:
Get-ChildItem -Path "D: \ Reports" -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -Force
Pour utiliser des chemins contenant une variable d'environnement comme %userprofile%\documents
, utilisez la syntaxe ci-dessous:
Get-ChildItem -Path "$ env: userprofile \ documents" -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -Force
(Remarque: le nom du dossier dans l'exemple est le dossier Documents
de votre profil utilisateur. Modifiez le nom et le chemin du dossier en fonction de vos besoins.)
Puisque nous avons utilisé le paramètre -File
, il ne fonctionne que pour les fichiers. Ainsi, les sous-dossiers qui n'ont pas été écrits au cours des n derniers jours ne peuvent pas être supprimés.
La commande ci-dessus comprend trois parties:
- L'applet de
Get-ChildItem
obtient la liste des fichiers dans votre dossier Documents. - La sortie est ensuite dirigée vers l'applet de commande
Where-Object
afin que la filtration soit effectuée, en sélectionnant uniquement les fichiers qui n'ont pas été modifiés au cours desx
derniers jours (dans cet exemple,30 days
). - Enfin, nous redirigeons la sortie vers l'applet de commande
Remove-Item
, qui à son tour supprime les anciens fichiers renvoyés par les deux applets de commande précédentes.
Astuce 1: Lister les fichiers correspondants, ne les supprimez pas?
Pour répertorier les fichiers et dossiers correspondants sans les supprimer, déposez le | Remove-Item
Commutateur | Remove-Item
.
Get-ChildItem -Path [chemin_dossier] -Fichier -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))}
Astuce 2: supprimer les erreurs lors de la suppression d'éléments
Pour supprimer les messages d'erreur (lors de l'accès ou de la suppression d'éléments) de l'affichage dans la console, ajoutez le paramètre -ErrorAction SilentlyContinue
.
Get-ChildItem -Path [chemin_dossier] -Fichier -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -ErrorAction Silencieusement Continue -Force
Supprimer les anciens fichiers ainsi que les dossiers
Notez que les commandes ci-dessus suppriment uniquement les anciens fichiers mais pas les sous-dossiers qui n'ont pas été écrits au cours des x
derniers jours. Pour supprimer les anciens dossiers, supprimez l'argument -File
dans les commandes précédemment expliquées.
Exemple:
Get-ChildItem -Path "$ env: userprofile \ documents" -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -Force
(Reportez- vous à la documentation de la cmdlet Get-ChildItem sur le site Microsoft)
Important: Le paramètre -Recurse
indique à PowerShell d'obtenir les fichiers de manière récursive (dans les sous-répertoires). Pour empêcher la recherche de fichiers dans les sous-dossiers, supprimez l'option -Recurse
afin que seul le dossier actuel soit traité.