Page 2 sur 2

Re: [Batch] Fichier .bat de nettoyage, optimisation

Posté : lun. 10 août 2026 02:00
par rayman95
viens de tester la V3, et ca fait le taff...
on a les questions O/N si on veut faire ou pas..y a le log a la fin..
peut-etre insister un peu pour le redemarrage a la fin..
bon boulot...

Re: [Batch] Fichier .bat de nettoyage, optimisation

Posté : lun. 10 août 2026 09:38
par titou
Merci du retour rayman95 😉

J’ai modifier la fin du script pour un redémarrage plus visible 👍

Re: [Batch] Fichier .bat de nettoyage, optimisation

Posté : lun. 10 août 2026 10:06
par Loic33
Bonjour

pour ma part j'ai demandé à Mistral de me realiser un fichier automatique de nettoyage après vidage de la corbeille

et voici le résultat

et ça fonctionne

@echo off
:: Script de nettoyage pour Windows 11 Pro
:: Ce script vide la corbeille, supprime les fichiers temporaires et nettoie les caches.

:: Vider la corbeille
echo [1/4] Vidage de la corbeille...
echo Y | powershell -command "Clear-RecycleBin -Force"

:: Supprimer les fichiers temporaires
echo [2/4] Suppression des fichiers temporaires...
del /q /f %temp%\*.* 2>nul

:: Supprimer les caches Windows
echo [3/4] Suppression des caches Windows...
del /q /f %windir%\Prefetch\*.* 2>nul
del /q /f %windir%\Temp\*.* 2>nul

:: Lancer l'outil de nettoyage de disque (cleanmgr)
echo [4/4] Lancement du nettoyeur de disque...
cleanmgr /sagerun:1

echo.
echo Nettoyage terminé avec succès !
pause


copier dans le bloc note
bouton droit executer en tant qu'administrateur et voilou !

Bonne journée

Re: [Batch] Fichier .bat de nettoyage, optimisation

Posté : lun. 10 août 2026 17:32
par titou
Je comprends que tout le monde aime ou pas l’IA
Sinon c’est utile aussi
Tout est bon a prendre ;)
Le script est tres propre en syntaxe 👍
Et je pense que moi aussi, il y a des erreurs où oubli

Voici la différence avec le script ci dessous:

​1. L'absence d'élévation des droits (Le blocage silencieux)
​Dans le premier script : Le script est lancé avec les droits utilisateur standards.
​L'erreur : Les dossiers %windir%\Prefetch et %windir%\Temp appartiennent au système. Sans droits Administrateur, la commande del se heurte à un refus d'accès ("Accès refusé"). Comme vous aviez mis 2>nul (qui masque les erreurs), le script faisait semblant de réussir, mais en réalité, il ne supprimait rien du tout dans les dossiers Windows.
​La solution finale : L'ajout de la commande fsutil au tout début force le script à demander les droits Administrateur. Le nettoyage système peut enfin s'opérer.

​2. Le nettoyage incomplet (Le piège des sous-dossiers)
​Dans le premier script : Vous utilisez del /q /f %temp%\*.*.
​L'erreur : La commande del ne supprime que les fichiers. Elle ignore complètement les sous-dossiers. Sur un espace système limité, comme c'est le cas sur un SSD NVMe de 128 Go où chaque gigaoctet compte, c'est une faille majeure. Les logiciels (navigateurs, installeurs, outils Windows) créent des dossiers entiers dans %temp% qui restaient intacts à chaque passage du script.
​La solution finale : L'ajout de la boucle for /f ... dir /b /a:d permet de cibler et de détruire intégralement les répertoires et leurs arborescences.

​3. L'oubli des fichiers cachés et protégés
​Dans le premier script : L'attribut /a est absent de vos commandes del.
​L'erreur : De nombreux fichiers temporaires sont marqués comme "Cachés" ou "Système" par les applications qui les génèrent. La commande del classique passe purement et simplement par-dessus sans les effacer.
​La solution finale : L'ajout de /a force la lecture et la suppression de tous les fichiers, peu importe leurs attributs de protection.

​4. La lourdeur du vidage de la corbeille
​Dans le premier script : echo Y | powershell -command "Clear-RecycleBin -Force"
​L'erreur : Faire appel à PowerShell depuis un script Batch (.bat) est très lourd. Le système doit charger tout le moteur PowerShell juste pour vider une corbeille, ce qui ajoute un délai de 2 à 3 secondes à l'exécution. De plus, le echo Y | était redondant puisque le paramètre -Force indique déjà à PowerShell de ne pas demander de confirmation.
​La solution finale : La suppression native du dossier $Recycle.Bin sur toutes les lettres de lecteur (de A à Z) en langage Batch pur est instantanée (quelques millisecondes) et couvre simultanément le disque système et le disque de stockage

Le voici modifier, peut-être avec des oublis et des erreurs..

Code : Tout sélectionner

@echo off
setlocal EnableExtensions
chcp 65001 >nul
title Nettoyage Windows 11 Pro

:: Vérification et auto-élévation des droits Administrateur
fsutil dirty query %systemdrive% >nul 2>&1 || (powershell -NoProfile -Command "Start-Process '%~f0' -Verb RunAs" & exit /b)
cd /d "%~dp0"

echo ===================================================================
echo               NETTOYAGE AUTOMATIQUE WINDOWS 11
echo ===================================================================
echo.

:: [1/4] Vider la corbeille sur tous les disques (A à Z) en mode natif instantané
echo [1/4] Vidage de la corbeille...
for %%D in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist "%%D:\$Recycle.Bin" (
        rd /s /q "%%D:\$Recycle.Bin" 2>nul
    )
)

:: [2/4] Supprimer les fichiers temporaires en profondeur (inclus fichiers sans extension et cachés)
echo [2/4] Suppression des fichiers temporaires...
del /f /s /q /a "%temp%\*" 2>nul
for /f "delims=" %%D in ('dir /b /a:d "%temp%" 2^>nul') do rd /s /q "%temp%\%%D" 2>nul

:: [3/4] Supprimer les caches Windows (Prefetch et Temp système)
echo [3/4] Suppression des caches Windows...
del /f /s /q /a "%windir%\Prefetch\*" 2>nul
del /f /s /q /a "%windir%\Temp\*" 2>nul
for /f "delims=" %%D in ('dir /b /a:d "%windir%\Temp" 2^>nul') do rd /s /q "%windir%\Temp\%%D" 2>nul

:: [4/4] Lancer le nettoyeur de disque en attendant sa fin complète
echo [4/4] Lancement du nettoyeur de disque (veuillez patienter)...
start /wait cleanmgr /sagerun:1

echo.
echo ===================================================================
echo               Nettoyage terminé avec succès !
echo ===================================================================
echo.
pause

[Code/]