Les redirections permettent de rediriger l'entrée et la sortie des commandes vers des fichiers au lieu de l'écran.
>Redirection simple : Écrase le fichier s'il existe
dir > liste_fichiers.txt
echo Bonjour le monde > message.txt
systeminfo > info_systeme.txt
Exemple pratique :
C:\Users\VotreNom> dir C:\Windows\System32 > programmes_system32.txt
C:\Users\VotreNom> type programmes_system32.txt
[Affiche le contenu du fichier créé]
>>Ajouter à la fin : N'écrase pas le fichier, ajoute à la fin
echo Ligne 1 > fichier.txt
echo Ligne 2 >> fichier.txt
echo Ligne 3 >> fichier.txt
Exemple pratique :
C:\Users\VotreNom> echo === Journal du système === > journal.txt
C:\Users\VotreNom> date /t >> journal.txt
C:\Users\VotreNom> time /t >> journal.txt
C:\Users\VotreNom> systeminfo | find "Nom du système" >> journal.txt
C:\Users\VotreNom> type journal.txt
<Utilise un fichier comme entrée pour une commande
sort < fichier_non_trie.txt
more < long_document.txt
Exemple pratique :
C:\Users\VotreNom> echo Banane > fruits.txt
C:\Users\VotreNom> echo Pomme >> fruits.txt
C:\Users\VotreNom> echo Ananas >> fruits.txt
C:\Users\VotreNom> sort < fruits.txt
Ananas
Banane
Pomme
2>Redirige les messages d'erreur
dir C:\DossierInexistant 2> erreurs.txt
>&Redirige la sortie standard ET les erreurs
dir C:\Windows > resultat.txt 2>&1
Exemple pratique :
C:\Users\VotreNom> ping google.com -n 4 > ping_resultat.txt 2>&1
C:\Users\VotreNom> type ping_resultat.txt
NULEnvoyer vers nulle part (ignorer la sortie)
ping google.com > NUL
del fichier.txt 2> NUL
Le pipe | envoie la sortie d'une commande directement comme entrée d'une autre commande.
commande1 | commande2
more : PaginationAfficher de longues sorties page par page
dir C:\Windows\System32 | more
help | more
systeminfo | more
Exemple pratique :
C:\Users\VotreNom> dir /s C:\Program Files | more
[Affiche page par page, appuyez sur Espace pour continuer]
find : FiltrageRechercher des lignes contenant un texte spécifique
dir | find ".txt"
tasklist | find "chrome"
systeminfo | find "Mémoire"
ipconfig | find "IPv4"
Exemple pratique :
C:\Users\VotreNom> dir C:\Windows | find "System"
C:\Users\VotreNom> netstat -an | find "ESTABLISHED"
C:\Users\VotreNom> tasklist | find /i "explorer"
Options de find :
/i : Ignorer la casse (majuscules/minuscules)/v : Inverser (afficher les lignes qui NE contiennent PAS le texte)/n : Afficher les numéros de lignedir | find /v "DIR" # Afficher seulement les fichiers
tasklist | find /i /n "exe" # Avec numéros de ligne, ignorer casse
findstr : Recherche avancéePlus puissant que find, supporte les expressions régulières
dir | findstr "\.txt$ \.doc$" # Fichiers .txt OU .doc
ipconfig | findstr "IPv4 Masque"
tasklist | findstr /i "chrome firefox edge"
Exemple pratique :
C:\Users\VotreNom> dir | findstr /i "projet.*\.docx"
C:\Users\VotreNom> systeminfo | findstr /B /C:"Nom"
Options importantes de findstr :
/i : Ignorer la casse/b : Correspondance en début de ligne/e : Correspondance en fin de ligne/c:"texte" : Texte littéral à chercher/r : Utiliser expressions régulièressort : Trierdir | sort
tasklist | sort
type fichier.txt | sort
Exemple pratique :
C:\Users\VotreNom> dir /b | sort
C:\Users\VotreNom> type noms.txt | sort > noms_tries.txt
Combiner plusieurs commandes
dir /s | find ".log" | find /v "backup" | more
tasklist | sort | find /i "chrome"
systeminfo | findstr "Processeur" | find "Intel"
systeminfo | findstr /C:"Processor" /C:"Family" /C:"Model" /C:"Stepping"
Exemple pratique :
C:\Users\VotreNom> dir C:\Windows\System32\*.exe | find "net" | sort
C:\Users\VotreNom> tasklist | findstr /i "chrome firefox" | find /v "GPU"
findRecherche de texte dans des fichiers ou des sorties
find "texte" fichier.txt
find /i "erreur" log.txt # Insensible à la casse
find /v "DEBUG" log.txt # Exclure les lignes avec DEBUG
find /c "ERROR" log.txt # Compter les occurrences
Exemple pratique :
C:\Users\VotreNom> echo Erreur critique > log.txt
C:\Users\VotreNom> echo Information normale >> log.txt
C:\Users\VotreNom> echo ERREUR système >> log.txt
C:\Users\VotreNom> find /i /c "erreur" log.txt
---------- LOG.TXT: 2
findstrRecherche avancée avec expressions régulières
findstr "pattern" fichier.txt
findstr /s "TODO" *.java # Recherche récursive
findstr /i /n "error" *.log # Avec numéros de ligne
findstr "^Début" fichier.txt # Lignes commençant par "Début"
findstr "fin$" fichier.txt # Lignes finissant par "fin"
Exemple pratique :
C:\Users\VotreNom\Code> findstr /s /i "function.*main" *.py
C:\Users\VotreNom\Code> findstr /n "TODO" *.txt
sortTrier les lignes par ordre alphabétique
sort fichier.txt
sort /r fichier.txt # Ordre inverse
dir | sort
Exemple pratique :
C:\Users\VotreNom> type noms.txt | sort > noms_tries.txt
C:\Users\VotreNom> dir /b | sort /r
moreAfficher du contenu page par page
more fichier.txt
dir C:\Windows | more
Commandes dans more :
Espace : Page suivanteEntrée : Ligne suivanteQ : Quitterdir - Lister le contenudir # Liste basique
dir /a # Tous les fichiers (même cachés)
dir /s # Récursif (sous-dossiers)
dir /b # Format simple (noms seulement)
dir /o:n # Trier par nom
dir /o:d # Trier par date
dir /o:-s # Trier par taille (décroissant)
dir *.txt /s # Tous les .txt récursivement
Exemple pratique :
C:\Users\VotreNom> dir /a:d # Seulement les dossiers
C:\Users\VotreNom> dir /a:h # Seulement les fichiers cachés
C:\Users\VotreNom> dir /s /b *.pdf # Tous les PDF avec chemins complets
tree - Arborescencetree # Arborescence du dossier actuel
tree /f # Avec les fichiers
tree /a # ASCII (pour compatibilité)
tree C:\Users > structure.txt
Exemple pratique :
C:\Users\VotreNom\ProjetSession> tree /f
attrib - Attributs de fichiersattrib fichier.txt # Voir les attributs
attrib +r fichier.txt # Lecture seule
attrib -r fichier.txt # Retirer lecture seule
attrib +h fichier.txt # Cacher
attrib -h fichier.txt # Rendre visible
attrib +s fichier.txt # Système
Exemple pratique :
C:\Users\VotreNom> attrib +r +h important.txt
C:\Users\VotreNom> attrib important.txt
A R H C:\Users\VotreNom\important.txt
xcopy - Copie avancéexcopy source destination
xcopy /s source dest # Avec sous-dossiers
xcopy /e source dest # Avec sous-dossiers vides
xcopy /d source dest # Seulement fichiers plus récents
xcopy /y source dest # Sans confirmation
Exemple pratique :
C:\Users\VotreNom> xcopy /s /e /y Documents\Projet E:\Backup\Projet\
robocopy - Copie robuste (recommandé)robocopy source destination
robocopy /s source dest # Avec sous-dossiers
robocopy /mir source dest # Miroir (synchronisation)
robocopy /z source dest # Mode redémarrable
robocopy /mt:8 source dest # 8 threads (plus rapide)
Exemple pratique :
C:\Users\VotreNom> robocopy Documents E:\Backup\Documents /mir /z /mt:4
ping - Tester la connectivitéping google.com
ping -n 10 google.com # 10 paquets
ping -t google.com # Continu (Ctrl+C pour arrêter)
ping -l 1000 google.com # Taille de paquet (1000 octets)
ipconfig - Configuration IPipconfig
ipconfig /all # Détails complets
ipconfig /release # Libérer l'IP DHCP
ipconfig /renew # Renouveler l'IP DHCP
ipconfig /flushdns # Vider le cache DNS
ipconfig /displaydns # Afficher le cache DNS
Exemple pratique :
C:\Users\VotreNom> ipconfig | findstr "IPv4"
Adresse IPv4. . . . . . . . . . . : 192.168.1.100
netstat - Connexions réseaunetstat # Connexions actives
netstat -a # Toutes les connexions et ports
netstat -n # Format numérique
netstat -b # Avec programmes (admin requis)
netstat -o # Avec PID des processus
netstat -ano # Tout en format numérique
Exemple pratique :
C:\Users\VotreNom> netstat -ano | findstr ":80"
C:\Users\VotreNom> netstat -b | findstr "chrome.exe" -A 5
tracert - Tracer la routetracert google.com
tracert -h 20 google.com # Max 20 sauts
nslookup - Requêtes DNSnslookup google.com
nslookup google.com 8.8.8.8 # Utiliser DNS Google
Exemple pratique :
C:\Users\VotreNom> nslookup www.google.com
Serveur : UnKnown
Address: 192.168.1.1
Réponse ne faisant pas autorité :
Nom : www.google.com
Addresses: 2607:f8b0:4020:805::2004
142.250.80.4
pathping - Diagnostic combinépathping google.com # Ping + tracert avec statistiques
tasklist - Liste des processustasklist
tasklist /v # Mode verbeux
tasklist /svc # Avec services
tasklist /fi "status eq running"
tasklist /fi "memusage gt 100000"
Exemple pratique :
C:\Users\VotreNom> tasklist | findstr "chrome"
chrome.exe 5432 Console 1 234,567 K
taskkill - Arrêter un processustaskkill /im notepad.exe
taskkill /pid 1234
taskkill /f /im chrome.exe # Force
taskkill /t /f /im node.exe # Force avec processus enfants
Exemple pratique :
C:\Users\VotreNom> tasklist | findstr "chrome"
C:\Users\VotreNom> taskkill /f /im chrome.exe
systeminfo - Informations systèmesysteminfo
systeminfo | findstr "Mémoire"
systeminfo | findstr /B /C:"Nom"
wmic - Windows Management Instrumentationwmic cpu get name # Info CPU
wmic memorychip get capacity # RAM installée
wmic diskdrive get size,model
wmic process get name,processid,workingsetsize
wmic product get name # Logiciels installés
Exemple pratique :
C:\Users\VotreNom> wmic cpu get name,numberofcores,maxclockspeed
C:\Users\VotreNom> wmic diskdrive get size,model,interfacetype
sfc - Vérifier les fichiers systèmesfc /scannow # Vérifier et réparer (admin requis)
chkdsk - Vérifier le disquechkdsk C:
chkdsk C: /f # Corriger les erreurs (admin requis)
chkdsk C: /r # Réparer secteurs défectueux
type - Afficher le contenutype fichier.txt
type fichier1.txt fichier2.txt
echo - Afficher du texteecho Bonjour
echo %DATE% # Date actuelle
echo %TIME% # Heure actuelle
echo %USERNAME% # Nom d'utilisateur
echo %COMPUTERNAME% # Nom de l'ordinateur
fc - Comparer des fichiersfc fichier1.txt fichier2.txt
fc /b fichier1.exe fichier2.exe # Comparaison binaire
Exemple pratique :
C:\Users\VotreNom> fc version1.txt version2.txt
Comparaison de fichiers version1.txt et VERSION2.TXT
***** version1.txt
Ligne 5 : ancien texte
***** VERSION2.TXT
Ligne 5 : nouveau texte
*****
where - Trouver des fichierswhere notepad # Chercher dans PATH
where /r C:\ *.dll # Recherche récursive
Exemple pratique :
C:\Users\VotreNom> where python
C:\Python39\python.exe
C:\Users\VotreNom\AppData\Local\Programs\Python\Python39\python.exe
date et timedate /t # Afficher la date
time /t # Afficher l'heure
date # Modifier la date (admin)
time # Modifier l'heure (admin)
help - Aide généralehelp # Liste toutes les commandes
help dir # Aide sur une commande
dir /? # Aide alternative
echo === RAPPORT SYSTÈME === > rapport.txt
echo. >> rapport.txt
echo Date: >> rapport.txt
date /t >> rapport.txt
time /t >> rapport.txt
echo. >> rapport.txt
echo === INFORMATIONS SYSTÈME === >> rapport.txt
systeminfo | findstr /B /C:"Nom" /C:"Type" /C:"Processeur" /C:"Mémoire" >> rapport.txt
echo. >> rapport.txt
echo === ESPACE DISQUE === >> rapport.txt
wmic logicaldisk get caption,freespace,size >> rapport.txt
echo. >> rapport.txt
echo === PROCESSUS (TOP 10) === >> rapport.txt
tasklist | sort >> rapport.txt
type rapport.txt
netstat -ano | findstr "ESTABLISHED" > connexions.txt
type connexions.txt
dir /s /a /-c | findstr /i "\.mp4 \.avi \.mkv" | sort > gros_fichiers.txt
wmic product get name,version > logiciels_installes.txt
tasklist | findstr /i "chrome firefox edge" | sort
wmic process where name="chrome.exe" get WorkingSetSize
echo === DIAGNOSTIC RÉSEAU === > diag_reseau.txt
date /t >> diag_reseau.txt
time /t >> diag_reseau.txt
echo. >> diag_reseau.txt
ipconfig /all >> diag_reseau.txt
echo. >> diag_reseau.txt
ping google.com -n 4 >> diag_reseau.txt
echo. >> diag_reseau.txt
tracert google.com >> diag_reseau.txt
type diag_reseau.txt
Objectif : Manipuler et filtrer des fichiers de logs
Créez un fichier app.log avec le contenu suivant (utilisez echo et >>):
2025-01-27 10:00:00 INFO Application démarrée2025-01-27 10:05:00 ERROR Connexion base de données échouée2025-01-27 10:06:00 INFO Tentative de reconnexion2025-01-27 10:07:00 ERROR Échec de reconnexion2025-01-27 10:10:00 INFO Application arrêtéeExtrayez toutes les lignes contenant "ERROR" dans un fichier erreurs.log
Comptez le nombre d'erreurs
Triez le fichier original par ordre alphabétique
Affichez le fichier page par page
Solution :
echo 2025-01-27 10:00:00 INFO Application démarrée > app.log
echo 2025-01-27 10:05:00 ERROR Connexion base de données échouée >> app.log
echo 2025-01-27 10:06:00 INFO Tentative de reconnexion >> app.log
echo 2025-01-27 10:07:00 ERROR Échec de reconnexion >> app.log
echo 2025-01-27 10:10:00 INFO Application arrêtée >> app.log
type app.log | find "ERROR" > erreurs.log
type app.log | find /c "ERROR"
type app.log | sort > app_trie.log
type app.log | more
Objectif : Créer un rapport de surveillance système
Créez un fichier surveillance.txt avec :
Trouvez tous les processus contenant "svchost"
Affichez les connexions réseau établies uniquement
Solution :
echo === RAPPORT DE SURVEILLANCE === > surveillance.txt
date /t >> surveillance.txt
time /t >> surveillance.txt
echo. >> surveillance.txt
tasklist | sort >> surveillance.txt
echo. >> surveillance.txt
ipconfig | findstr "IPv4" >> surveillance.txt
echo. >> surveillance.txt
wmic logicaldisk where "DeviceID='C:'" get FreeSpace >> surveillance.txt
tasklist | findstr "svchost"
netstat -an | findstr "ESTABLISHED"
Objectif : Manipuler et analyser une structure de fichiers
Projet/src, Projet/docs, Projet/testssrc, créez 5 fichiers Python (.py) et 3 fichiers JavaScript (.js)python_files.txtstructure.txtSolution :
mkdir Projet
cd Projet
mkdir src docs tests
cd src
type nul > main.py
type nul > utils.py
type nul > config.py
type nul > database.py
type nul > api.py
type nul > app.js
type nul > server.js
type nul > routes.js
cd ..
dir /b src\*.py > python_files.txt
dir /s /b | find /c ":"
tree /f > structure.txt
dir /s /b *.py
Objectif : Créer un script de diagnostic réseau complet
google.com, github.com, et stackoverflow.comdiagnostic.txtSolution :
echo === DIAGNOSTIC RÉSEAU COMPLET === > diagnostic.txt
date /t >> diagnostic.txt
time /t >> diagnostic.txt
echo. >> diagnostic.txt
echo === PING GOOGLE === >> diagnostic.txt
ping google.com -n 4 >> diagnostic.txt
echo. >> diagnostic.txt
echo === PING GITHUB === >> diagnostic.txt
ping github.com -n 4 >> diagnostic.txt
echo. >> diagnostic.txt
echo === PING STACKOVERFLOW === >> diagnostic.txt
ping stackoverflow.com -n 4 >> diagnostic.txt
echo. >> diagnostic.txt
type diagnostic.txt | findstr "Moyenne"
echo === CONFIGURATION RÉSEAU === >> diagnostic.txt
ipconfig /all >> diagnostic.txt
netstat -ano | findstr ":443"
Objectif : Surveiller et analyser les processus système
chrome_processes.txtSolution :
tasklist | findstr /b "s"
tasklist | findstr /i "chrome" > chrome_processes.txt
tasklist | sort | more
tasklist | findstr /i "svchost.exe" | find /c "svchost.exe"
tasklist > tous_processus.txt
echo Début backup: > backup_log.txt
date /t >> backup_log.txt
time /t >> backup_log.txt
robocopy C:\Projet E:\Backup\Projet /mir /z /log+:backup_log.txt
echo Fin backup: >> backup_log.txt
date /t >> backup_log.txt
time /t >> backup_log.txt
netstat -e > stats_reseau_avant.txt
timeout 60
netstat -e > stats_reseau_apres.txt
fc stats_reseau_avant.txt stats_reseau_apres.txt
dir %temp%\*.tmp /s /b > fichiers_temp.txt
type fichiers_temp.txt | find /c ":"
del %temp%\*.tmp /s /q 2> NUL
echo %USERNAME% # Nom utilisateur
echo %COMPUTERNAME% # Nom ordinateur
echo %USERPROFILE% # Profil utilisateur (C:\Users\...)
echo %TEMP% # Dossier temporaire
echo %PATH% # Chemins de recherche
echo %SYSTEMROOT% # Dossier Windows (C:\Windows)
echo %PROGRAMFILES% # Program Files
echo %APPDATA% # AppData
| Opérateur | Description | Exemple |
|---|---|---|
> |
Rediriger sortie (écrase) | dir > liste.txt |
>> |
Rediriger sortie (ajoute) | echo text >> fichier.txt |
< |
Rediriger entrée | sort < fichier.txt |
| |
Pipe (tube) | dir | more |
2> |
Rediriger erreurs | dir 2> erreurs.txt |
2>&1 |
Erreurs vers sortie standard | cmd 2>&1 |
& |
Exécuter séquentiellement | cd docs & dir |
&& |
Exécuter si succès | mkdir test && cd test |
|| |
Exécuter si échec | ping site || echo Échec |
* : N'importe quels caractères (wildcard)? : Un seul caractère^ : Caractère d'échappement%variable% : Expansion de variableExemples :
dir *.txt # Tous les .txt
dir ?.txt # a.txt, b.txt mais pas ab.txt
echo Texte avec ^> chevron # Affiche le caractère >
Les fichiers batch permettent d'automatiser des séquences de commandes.
Exemple : diagnostic_complet.bat
@echo off
echo ===================================
echo DIAGNOSTIC SYSTÈME COMPLET
echo ===================================
echo.
echo Création du rapport...
echo === RAPPORT GÉNÉRÉ LE === > rapport_complet.txt
date /t >> rapport_complet.txt
time /t >> rapport_complet.txt
echo. >> rapport_complet.txt
echo === INFORMATIONS SYSTÈME === >> rapport_complet.txt
systeminfo | findstr /B /C:"Nom" /C:"Processeur" /C:"Mémoire" >> rapport_complet.txt
echo. >> rapport_complet.txt
echo === ESPACE DISQUE === >> rapport_complet.txt
wmic logicaldisk get caption,freespace,size >> rapport_complet.txt
echo. >> rapport_complet.txt
echo === CONFIGURATION RÉSEAU === >> rapport_complet.txt
ipconfig | findstr "IPv4 Masque Passerelle" >> rapport_complet.txt
echo. >> rapport_complet.txt
echo Rapport créé avec succès : rapport_complet.txt
pause
Fin du cours - Bonne pratique !