Trucs et astuces

Windows 10, optimiser les performances avec la commande « ForFiles »

Microsoft fait l’éloge des outils de maintenance de Windows 10 mais avec le temps et à l’image de Windows 7, le système « s’encrasse » et s’alourdit avec l’accumulation de fichiers inutiles ou obsolètes. Une commande particulière permet de faire le ménage avec une condition de date. En clair il est possible de supprimer tous les fichiers ayant plus de X jours. Ceci concerne n’importe quels répertoires.

Un outil intégré à Windows permet de faire le ménage dans les fichiers afin de soulager l’unité de stockage.  Il est possible d’automatiser la suppression des données les plus anciennes en quelques secondes.

La démarche est bénéfique au performance du système. Le fait de conserver des dossiers propres, comme par exemple « Téléchargements », accélère leurs changements mais pas seulement. En supprimant les fichiers inutiles vous récupérez de l’espace de stockage (appréciable avec un SSD) tout en évitant les ralentissements dus à la lecture de l’ensemble des données des dossiers. Plus un dossier est encombré plus son ouverture est longue.

Nous n’allons pas utiliser une application tierce mais seulement une commande de Microsoft, « ForFiles ». L’idée est de mettre en place un petit script. Il lancera une recherche automatique des fichiers ayant dépassés une certaine date. Ensuite ils seront automatiquement effacés. Il faut juste savoir que selon le dossier a nettoyer, des privilèges d’administrateur peuvent aitre nécessaires.

Windows 10 et le PowerShell

La commande « ForFiles » est accessible directement en ligne de commande. En clair il faut ouvrir PowerShell (ou une invite de commande pour les anciennes versions de windows ) en mode administrateur. Pour cela tapez “PowerShell” dans le champ “Taper ici pour rechercher” de la barre des tâches” puis exécuter “PowerShell” en mode administrateur.

Windows 10 - Commande ForFiles

Dans notre exemple nous allons nous attaquer au répertoire Téléchargement (Downloads) situé dans “c:\Users\ « votre nom »\Downloads”. Notre cible est l’ensemble des fichiers ayant plus de 30 jours. Vous pouvez naturellement choisir une autre période.

Forfiles, beaucoup de possibilités

La commande en question est la suivante

ForFiles /p “C:\Users\ « votre nom »\Downloads” /s /d -30 /c “cmd /c del @file”

Le paramètre « /p » indique le chemin d’accès au répertoire concerné par l’action de ForFiles. « /s » précise que ForFiles dont agir dans le répertoire en question mais également dans tous ses sous répertoires. De son côté « / d » précise la date en jour et « @file » stipule que le nettoyage concerne tous les fichiers. Pour connaitre en détails toutes les possibilités de ForFiles, tapez “Forfiles /?“.

Il est possible de raccourcir cette commande. Il suffit seulement d’ouvrir le PowerShell directement dans le dossier en question. Cela évite d’indiquer le chemin d’accès soit “/p “C:\Users\ « votre nom »\Downloads”“.

Windows 10 - Commande ForFiles

C’est très simple. Allez dans le répertoire désiré au travers du gestionnaire de fichier puis en pressant la touche « MAJ » de votre clavier un simple clic droit de la souris vous donne accès à la commande « Ouvrir la fenêtre PowerShell ici »  (ou l’invite de commande si vous utilisez une ancienne version de Windows). A partir de là notre ligne de commande devient :

ForFiles / s / d -30 / c "cmd / c del @fichier"

Il existe plusieurs manière d’automatiser ce processus de nettoyage de chaque dossier. L’un des plus simples et de mettre en place dans le répertoire en question un petit script (un fichier .bat) avec les lignes suivantes

@Écho off
ForFiles / s / d -30 / c "cmd / c del @fichier"
fin

Vous pouvez également l’enregistrer sur le bureau en précisant par contre le chemin d’accès

@Écho off
ForFiles /p “C:\Users\ « votre nom »\Downloads” /s /d -30 /c “cmd /c del @file”
fin

A noter que le premier script efface tous les fichiers de plus de 30 jours et cela comprend le script lui-même dès son exécution. Attention la suppression concerne les fichiers dans le répertoire ou le .bat est enregistré.

N’hésitez pas à compléter cette astuce dans les commentaires en particulier du côté du script.

Jerome G

Issu d’une formation scientifique. Aime l'innovation, la High Tech et le développement durable. Soucieux du respect de la vie privée.

3 commentaires

  1. pour automatiser le tout, pourquoi ne pas ajouter un if qui créer un nouveau .bat à l’identique si celui de 30 jours doit être supprimé ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page