Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Windows20 livrablesQuiz corrigé

Apprivoiser le terminal copy · xcopy · robocopy

Ranger et sauvegarder les dossiers de GSB en ligne de commande — sans la souris.

Par Josselyn C., prof de BTS SIO. Publié le , mis à jour le .

On manipule
l'invite de commandes Windows (cmd) + un pont PowerShell
Durée
~5-6h — une journée bien remplie (Partie 1 : le terminal & toutes les commandes de base · Partie 2 : les scripts .bat) · Public : débutant absolu, aucun pré-requis

On travaille UNIQUEMENT dans un dossier bac à sable C:\gsb-atelier. Jamais dans C:\Windows ni dans les dossiers système.

Ce qu'on fait aujourd'hui

Tu es en stage chez GSB (Galaxy Swiss Bourdin, un labo pharma). Le service croule sous les dossiers : comptes-rendus des visiteurs médicaux, exports, modèles de courriers… tout est en vrac. Ta mission : ranger cette pagaille et en faire une sauvegarde propre — mais sans toucher la souris, uniquement au clavier, dans le terminal.

Pourquoi sans la souris ? Parce qu'un informaticien qui sait taper 3 commandes fait en 10 secondes ce qui prend 5 minutes à la souris — et surtout, ces commandes sont reproductibles et automatisables (on peut les mettre dans un script qui tourne tout seul chaque soir). C'est exactement ce que tu feras plus tard en production.

Schéma : Le résultat à obtenir aujourd'hui · gsb-atelier\ (le travail) · ├ comptes-rendus\ · ├ exports\ · └ modeles\ · = tes dossiers rangés · robocopy · gsb-sauvegarde\ (le clone) · ├ comptes-rendus\ · ├ exports\ · └ modeles\ · = copie fidèle, en 1 commande · à l'identique

Mode d'emploi — tu avances SEUL

Les notions de la Partie 1 — le terminal

NotionLa commandeÀ quoi ça sert
Ouvrir le terminalcmdDonner des ordres écrits à Windows
Savoir où on estcdAfficher le dossier courant (le « tu es ici »)
Lister le contenudirVoir les fichiers et dossiers présents
Se déplacercd nom / cd ..Entrer dans un dossier / remonter
Créer un dossiermkdirFabriquer l'arborescence de travail
Copier un fichiercopyDupliquer un fichier seul
Copier une arborescencexcopyDupliquer un dossier avec ses sous-dossiers
Sauvegarder « pro »robocopy / Copy-ItemCloner un dossier de façon robuste (cmd) et son équivalent PowerShell

Le vocabulaire de départ

MotÇa veut dire quoi
Terminal / invite de commandesUne fenêtre noire où tu tapes des ordres écrits au lieu de cliquer. Sous Windows, ça s'appelle cmd.
Invite (prompt)Le petit texte au début de la ligne, ex. C:\gsb-atelier>. Il te dit où tu es et attend ta commande après le >.
Dossier / répertoireLe même objet (un « tiroir » qui contient des fichiers). « Répertoire » est le mot technique.
Chemin (path)L'adresse d'un fichier ou dossier, ex. C:\gsb-atelier\exports. Les niveaux sont séparés par un anti-slash \.
ArborescenceUn dossier et tout ce qu'il contient (sous-dossiers compris), comme les branches d'un arbre.

0. C'est quoi le terminal, et comment l'ouvrir

Le terminal, c'est comme envoyer des SMS à ton ordinateur : tu écris un ordre court, tu appuies sur Entrée, il l'exécute et te répond. Pas de menus, pas de boutons — juste du texte. C'est déroutant 5 minutes, puis ça devient une superpuissance. On part de ce que tu connais déjà — l'explorateur de fichiers — puis on bascule au terminal, qui fait exactement la même chose en texte.

Étape 1 — Ouvre l'explorateur de fichiers

Appuie sur Windows + E (E comme Explorer). La fenêtre de l'explorateur s'ouvre : c'est la vue « souris » de tes dossiers, celle que tu utilises tous les jours.

Un raccourci qui sert tout le temps : Ctrl + E place le curseur dans la barre d'adresse/recherche de l'explorateur. Tu peux alors taper un chemin (ex. C:\Windows) puis Entrée pour y sauter directement — comme un cd, mais à la souris.

Étape 2 — Ouvre le terminal (l'invite de commandes)

Appuie sur Windows + R (la touche Windows et R en même temps). Une petite fenêtre « Exécuter » s'ouvre. Tape :

cmd

Tu vois quelque chose comme ça (le début change selon ton nom d'utilisateur) :

Ce que tu dois voir
Microsoft Windows [version 10.0.19045.4529]
(c) Microsoft Corporation. Tous droits réservés.

C:\Users\eleve>_

Étape 3 — Le pont explorateur ↔ terminal (dans les deux sens)

Les deux mondes communiquent. Depuis le terminal, ouvre l'explorateur à l'endroit où tu es :

start .

Et dans l'autre sens : dans l'explorateur, Ctrl+E, copie le chemin affiché, puis dans le terminal tape cd et colle-le (clic droit) — tu sautes exactement au même endroit. La souris et le clavier montrent le même lieu.

1. Se repérer : où suis-je, et qu'y a-t-il ?

Avant de copier quoi que ce soit, il faut savoir où on est et ce qu'il y a autour. Deux commandes suffisent : une pour l'adresse, une pour le contenu.

Étape 1 — Afficher le dossier courant : cd

Tape simplement :

powershell
cd
Ce que tu dois voir
C:\Users\eleve

Étape 2 — Lister le contenu : dir

powershell
dir
Ce que tu dois voir
 Le volume dans le lecteur C n'a pas de nom.

 Répertoire de C:\Users\eleve

01/09/2026  09:12    <DIR>          Documents
01/09/2026  09:12    <DIR>          Downloads
01/09/2026  08:40             1 024 notes.txt
               1 fichier(s)            1 024 octets
               2 Rép(s)  53 218 611 200 octets libres

FLAG-A1

Où es-tu ?

Tape cd puis Entrée. Recopie le chemin exact affiché.
Rends : FLAG-A1- suivi de ce chemin (ex. FLAG-A1-C:\Users\eleve).

0 sur 20 dans cette étape

Étape 3 — Se déplacer : cd nom et cd ..

Pour entrer dans un dossier, mets son nom après cd :

powershell
cd Documents

Pour remonter au dossier parent :

powershell
cd ..

Chapitre 1 bis — Le tour complet des commandes de base

Avant de construire, on fait le tour de la boîte à outils du terminal. Tu connais déjà cd et dir ; voici tout le reste pour vraiment te balader et inspecter n'importe quelle machine. On regroupe par famille. Tape chaque commande au fur et à mesure.

Changer de disque : cd /d

powershell
cd /d D:\

Aller-retour rapide : pushd / popd

pushd C:\Windows
popd

Explorer le contenu à fond

Les options de dir

CommandeAffiche…
dirle contenu du dossier courant
dir /aTOUT, y compris les fichiers cachés et système
dir /bles noms bruts seulement (pratique pour des listes)
dir /sle contenu et tous les sous-dossiers (récursif)
dir /o:dtrié par date (o:d) ; /o:s = par taille
dir *.txtseulement les fichiers qui matchent (joker)

Voir l'arbre : tree

tree C:\Windows\Media /f
Ce que tu dois voir
C:\WINDOWS\MEDIA
├───...
│   ├── chimes.wav
│   └── ding.wav
└───...

Lire et chercher dans les fichiers

Afficher un fichier : type et more

powershell
type C:\Windows\System32\drivers\etc\hosts

Chercher un texte : findstr (et le tuyau |)

powershell
ipconfig | findstr IPv4
Ce que tu dois voir
   Adresse IPv4. . . . . . . . . . . . . .: 192.168.1.25

Où est ce programme ? where

where notepad

FLAG-A4

Compter avec un tuyau

Combien de programmes .exe dans le dossier système ? Tape :

powershell
dir C:\Windows\System32\*.exe /b | find /c ".exe"

find /c "texte" compte les lignes contenant le texte. Rends FLAG-A4- suivi du nombre affiché (il dépend de ta version de Windows — recopie le tien).

0 sur 20 dans cette étape

S'informer sur la machine et le réseau

CommandeCe qu'elle te dit
clsEfface l'écran (clear screen)
verLa version de Windows
hostnameLe nom réseau de la machine
whoamiTon compte utilisateur (domaine\nom)
ipconfigTes adresses réseau (IP, passerelle)
ping 8.8.8.8Teste si le réseau/Internet répond
tasklistLa liste des programmes en cours (comme le Gestionnaire des tâches, en texte)
taskkill /IM nom.exe /FForce l'arrêt d'un programme par son nom
systeminfoFiche complète de la machine (RAM, OS, modèle…)

Se faciliter la vie (confort)

↑ / ↓Rappelle les commandes précédentes/suivantes
TabComplète automatiquement un nom de fichier/dossier (tape le début, Tab)
F7Affiche l'historique des commandes dans un menu
title Mon terminalChange le titre de la fenêtre
color 0AChange les couleurs (fond/texte) ; color seul remet par défaut
exitFerme le terminal

La clé maîtresse : l'aide /?

Tu n'as pas à tout retenir. Chaque commande explique ses options avec /? :

powershell
copy /?

Le pont cmd ↔ PowerShell ↔ Linux

La même idée existe partout, sous des noms différents. Ce tableau te servira toute ta carrière :

Faire…cmdPowerShellLinux / macOS
ListerdirGet-ChildItem / lsls
Se déplacercdcdcd
Copiercopy / xcopyCopy-Item / cpcp (cp -r)
DéplacermoveMove-Item / mvmv
Supprimerdel / rmdirRemove-Item / rmrm (rm -r)
Afficher un fichiertypeGet-Content / catcat
Effacer l'écranclsClear-Host / clsclear

FLAG-D3

Deviens autonome avec l'aide

Sans que je te le dise : avec dir /?, trouve l'option qui affiche les fichiers cachés.
Rends FLAG-D3- suivi de l'option (elle commence par /).

0 sur 20 dans cette étape

2. Créer l'arborescence de travail (mkdir)

On part de zéro : on va fabriquer notre chantier C:\gsb-atelier et ses trois tiroirs. La commande mkdir = make directory, « fabrique un dossier ».

Étape 1 — Se placer à la racine du disque C

powershell
cd \

Étape 2 — Créer le dossier chantier

powershell
mkdir gsb-atelier

Entre dedans, puis crée les trois sous-dossiers d'un coup :

powershell
cd gsb-atelier
mkdir comptes-rendus exports modeles

Étape 3 — Vérifier avec dir

powershell
dir
Ce que tu dois voir
 Répertoire de C:\gsb-atelier

01/09/2026  10:03    <DIR>          comptes-rendus
01/09/2026  10:03    <DIR>          exports
01/09/2026  10:03    <DIR>          modeles
               0 fichier(s)               0 octets
               3 Rép(s)  ...

Étape 4 — Fabriquer des fichiers de test (echo)

Pour avoir quelque chose à copier plus tard, créons quelques fichiers factices dans modeles :

powershell
echo Modele de courrier GSB > modeles\courrier.txt
echo Modele de note de frais > modeles\notes-frais.txt
echo Modele de compte-rendu > modeles\cr-visite.txt
powershell
dir modeles
Ce que tu dois voir
 Répertoire de C:\gsb-atelier\modeles

01/09/2026  10:07                26 courrier.txt
01/09/2026  10:07                25 notes-frais.txt
01/09/2026  10:07                24 cr-visite.txt
               3 fichier(s)  ...

FLAG-B1

Ton chantier est prêt

Recrée exactement cette arborescence (si ce n'est pas déjà fait), place-toi dans C:\gsb-atelier et tape dir.
Rends FLAG-B1- suivi du nombre de répertoires (Rép(s)) affiché sur la dernière ligne (indice : tu en as créé trois).

0 sur 20 dans cette étape

3. Copier un fichier (copy)

copy, c'est la photocopieuse : tu lui donnes un original et une destination, elle en fait un double. Syntaxe : copy <source> <destination>.

Étape 1 — Copier un modèle vers un autre dossier

Place-toi dans le chantier (cd \gsb-atelier) puis :

powershell
copy modeles\courrier.txt exports
Ce que tu dois voir
        1 fichier(s) copié(s).

Étape 2 — Copier en renommant au passage

powershell
copy modeles\courrier.txt exports\courrier-2026.txt

FLAG-A2

Combien de copies ?

D'un seul coup, copie tous les .txt de modeles vers exports : copy modeles\*.txt exports. Le * est un joker (« tous les fichiers finissant par .txt »).
Recopie le chiffre de la sortie. Rends : FLAG-A2- + ce nombre (ex. FLAG-A2-3).

0 sur 20 dans cette étape

Chapitre 3 bis — Déplacer, renommer, supprimer

Copier, tu sais. Il te manque trois gestes du quotidien : déplacer (move), renommer (ren) et supprimer (del). On les pratique dans le bac à sable, sur les fichiers de exports créés au chapitre 3.

Déplacer : move

move exports\courrier.txt comptes-rendus

Renommer : ren

powershell
ren comptes-rendus\courrier.txt courrier-officiel.txt

Supprimer : del (et rmdir pour les dossiers)

powershell
del exports\courrier-2026.txt

FLAG-B6

Range comme un pro

Dans exports : renomme notes-frais.txt en frais-2026.txt, puis vérifie avec dir exports.
Rends FLAG-B6- suivi du nouveau nom exact du fichier tel qu'il apparaît dans dir.

0 sur 20 dans cette étape

4. Copier une arborescence entière (xcopy)

Essaie copy modeles sauvegarde-modeles… ça ne copie que les fichiers du dossier, pas ses éventuels sous-dossiers, et c'est vite limité. Pour copier un dossier avec toute sa descendance, on utilise xcopy (le « copy étendu », eXtended copy).

Schéma : copy vs xcopy vs robocopy — qui copie quoi ? · copy · ✔ les fichiers d'un dossier · ✗ pas les sous-dossiers · 1 fichier ou un lot simple · xcopy /E /I · ✔ dossier + sous-dossiers · ✔ options utiles · arborescence entière · robocopy /E · ✔ arborescence + reprise · ✔ miroir, journaux,…

Étape 1 — Copier tout le chantier ailleurs

Depuis C:\gsb-atelier, copions tout dans un nouveau dossier C:\gsb-copie :

powershell
xcopy . C:\gsb-copie /E /I
Ce que tu dois voir
modeles\courrier.txt
modeles\notes-frais.txt
modeles\cr-visite.txt
exports\courrier.txt
exports\courrier-2026.txt
...
        6 fichier(s) copié(s)

Les options xcopy à connaître

OptionEffetQuand s'en servir
/ESous-dossiers inclus (même vides)Presque toujours, pour une arbo complète
/ICrée la destination comme dossierQuand la destination n'existe pas encore
/YÉcrase sans demanderDans un script automatique
/DCopie seulement les fichiers plus récentsSauvegarde incrémentale rapide
/EXCLUDE:liste.txtNe copie pas ce qui est listéIgnorer des temporaires (.tmp…)

FLAG-C1

Répare la commande cassée

Un collègue a tapé ceci pour copier le chantier, mais ça plante :

powershell
xcopy . C:\gsb-livraison /E
  1. Explique en une phrase pourquoi ça coince (indice : compare avec l'étape 1). 2) Corrige la commande, lance-la, et rends FLAG-C1- + le nombre de fichiers copié(s) affiché à la fin.
0 sur 20 dans cette étape

5. La sauvegarde « pro » : robocopy

xcopy marche, mais Microsoft le considère comme dépassé. Son successeur officiel est robocopy (Robust File Copy) : il reprend si la copie est interrompue, va plus vite sur de gros volumes, écrit des journaux, et sait faire un miroir exact. C'est l'outil qu'on utilise pour de vraies sauvegardes.

Étape 1 — Cloner le chantier proprement

Depuis C:\gsb-atelier :

powershell
robocopy . C:\gsb-sauvegarde /E
Ce que tu dois voir
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------
              Total    Copiés   Ignorés
   Rép :         4         4        0
 Fichiers :      6         6        0
-------------------------------------------------------------------------------

Les options robocopy à connaître

OptionEffet
/ESous-dossiers inclus (même vides)
/MIRMiroir : la destination devient une copie EXACTE de la source…
/LOG:sauve.txtÉcrit le rapport dans un fichier journal
/XONe recopie pas un fichier destination plus récent (eXclude Older)
/NPPas d'affichage du % (sortie plus propre dans un log)

FLAG-B2

Ta première vraie sauvegarde

Fais une sauvegarde journalisée du chantier :

powershell
robocopy . C:\gsb-sauvegarde /E /LOG:C:\gsb-atelier\rapport.txt

Ouvre le journal (type rapport.txt ou double-clic) et rends FLAG-B2- suivi du nombre de fichiers au Total indiqué dans le récapitulatif.

0 sur 20 dans cette étape

6. Le pont vers PowerShell (l'outil moderne)

cmd est le terminal historique. À côté vit PowerShell, plus récent et plus lisible, que tu croiseras partout en entreprise. Bonne nouvelle : les gestes sont les mêmes, seuls les mots changent. Voici le pont.

Étape 1 — Ouvrir PowerShell

Windows+R, puis tape :

powershell

Étape 2 — Les mêmes gestes, d'autres noms

Ce que tu veux fairecmdPowerShell
Lister le contenudirGet-ChildItem (alias dir et ls marchent aussi)
Se déplacercd modelescd modeles (identique)
Copier un fichiercopy a bCopy-Item a b
Copier une arboxcopy a b /E /ICopy-Item a b -Recurse

Étape 3 — Copier le chantier en PowerShell

Place-toi dans le chantier (cd C:\gsb-atelier) puis :

powershell
Copy-Item . C:\gsb-copie-ps -Recurse

Vérifie :

powershell
Get-ChildItem C:\gsb-copie-ps

FLAG-D1

Investigation doc

Tu veux que Copy-Item écrase les fichiers déjà présents sans se plaindre. Cherche l'option qui fait ça (aide intégrée : tape Get-Help Copy-Item, ou cherche « Copy-Item overwrite » dans la doc Microsoft).
Rends FLAG-D1- suivi du nom exact de l'option (elle commence par un tiret).

0 sur 20 dans cette étape

Partie 2 — Automatiser : les scripts .bat

Jusqu'ici tu tapais tes commandes une par une. Mais une sauvegarde, tu vas la refaire tous les jours : ce serait bête de retaper les mêmes lignes à chaque fois. La solution : les mettre dans un fichier script (un .bat), et lancer tout d'un seul double-clic. C'est le premier pas vers l'automatisation — le cœur du métier.

Les notions de la Partie 2

NotionLe mot-cléÀ quoi ça sert
Écrire & lancer un script.bat, @echo off, pauseEnchaîner des commandes automatiquement
Mémoriser une valeurset, %var%Garder un texte ou un nombre pour le réutiliser
Poser une questionset /pLire ce que l'utilisateur tape
Déciderif, if exist, elseFaire quelque chose seulement si une condition est vraie
Répéter (utile)forTraiter chaque fichier d'un dossier
Répéter (sans fin)gotoComprendre la boucle infinie — et savoir l'arrêter
Arrêter / se défendreCtrl+C, taskkillReprendre le contrôle d'un script emballé

7. Ton premier script .bat

Un script, c'est une recette de cuisine : une liste d'ordres écrits que l'ordinateur exécute dans l'ordre, du haut vers le bas, tout seul. On l'écrit dans un simple fichier texte, qu'on enregistre avec l'extension .bat.

Étape 1 — Créer le fichier avec le Bloc-notes

Ouvre le Bloc-notes (menu Démarrer → « Bloc-notes »). Tape exactement :

@echo off
echo Bonjour, ici le script GSB !
echo Je vais t'aider a sauvegarder.
pause

Étape 2 — Enregistrer en .bat (le piège classique)

Fichier → Enregistrer sous. Va dans C:\gsb-atelier. Point crucial : dans « Type », choisis « Tous les fichiers » (pas « Documents texte »), et nomme le fichier bonjour.bat.

Étape 3 — Le lancer

Deux façons : double-clic dans l'explorateur, ou depuis le terminal :

bonjour.bat
Ce que tu dois voir
Bonjour, ici le script GSB !
Je vais t'aider a sauvegarder.
Appuyez sur une touche pour continuer...

FLAG-B3

Ton script d'accueil

Écris mon-premier.bat qui : (1) affiche ton prénom, (2) affiche la phrase « Atelier terminal — GSB », (3) fait une pause. Ajoute au moins un commentaire rem.
Rends FLAG-B3-OK quand il tourne, + colle le contenu de ton fichier sur ta feuille.

0 sur 20 dans cette étape

8. Les variables et les questions

Une variable, c'est une boîte étiquetée dans laquelle tu ranges une valeur (un texte, un nombre) pour la réutiliser plus loin. On la crée avec set, et on lit son contenu en entourant son nom de %.

Étape 1 — Créer et utiliser une variable

set entreprise=GSB
echo Bienvenue chez %entreprise% !

Étape 2 — Poser une question : set /p

set /p prenom=Comment tu t'appelles ?
echo Salut %prenom%, on y va !

Étape 3 — Calculer : set /a

set /p annee=Ton annee de naissance ?
set /a age=2026 - %annee%
echo Tu as environ %age% ans.

Les variables système déjà prêtes

VariableContient
%date% / %time%La date / l'heure du moment
%username%Ton nom d'utilisateur Windows
%cd%Le dossier courant (current directory)
%userprofile%Ton dossier personnel (C:\Users\…)

FLAG-A3

Calcul automatique

Écris un .bat qui range set /a total=12 * 8 + 4 puis l'affiche.
Lance-le et rends FLAG-A3- suivi du nombre affiché.

0 sur 20 dans cette étape

9. Décider : les conditions (if)

Un script utile ne fait pas toujours la même chose : il s'adapte. « Si le dossier de sauvegarde existe déjà, ne le recrée pas ; sinon, crée-le. » Ce « si… sinon » se dit if … else.

Étape 1 — Tester si un dossier existe

if exist C:\gsb-sauvegarde (
  echo Le dossier de sauvegarde existe deja.
) else (
  echo Je le cree.
  mkdir C:\gsb-sauvegarde
)

Étape 2 — Comparer des valeurs

set /p choix=Tape 1 pour sauvegarder :
if "%choix%"=="1" (
  echo On lance la sauvegarde.
) else (
  echo Choix ignore.
)

FLAG-C2

Répare la condition

Ce bout de script plante. Trouve les deux erreurs, corrige-le, fais-le tourner :

set /p rep=Continuer ? (o/n)
if %rep%==o
(
  echo On continue.
)

Indices : une histoire de guillemets, et une histoire de parenthèse mal placée. Rends FLAG-C2- + le mot affiché quand tu tapes « o ».

0 sur 20 dans cette étape

10. Répéter utilement : la boucle for

Traiter 1 fichier, tu sais. Mais 50 ? Tu ne vas pas taper 50 lignes. La boucle for dit : « pour chaque fichier de ce dossier, fais ceci ». Une ligne, tous les fichiers.

Étape 1 — Parcourir les fichiers d'un dossier

Dans un .bat, place-toi (par la pensée) dans modeles et écris :

for %%f in (C:\gsb-atelier\modeles\*.txt) do echo Trouve : %%f
Ce que tu dois voir
Trouve : C:\gsb-atelier\modeles\courrier.txt
Trouve : C:\gsb-atelier\modeles\notes-frais.txt
Trouve : C:\gsb-atelier\modeles\cr-visite.txt

Étape 2 — Compter avec un compteur

set /a n=0
for %%f in (C:\gsb-atelier\modeles\*.txt) do set /a n=%n%+1
echo Il y a %n% fichiers .txt.

Étape 3 — Un compteur de 1 à 5

for /l %%i in (1,1,5) do echo Tour numero %%i

FLAG-B4

Compter les fichiers

Écris un .bat qui compte les fichiers .txt présents dans C:\gsb-atelier\modeles et affiche le total (reprends l'étape 2).
Rends FLAG-B4- suivi du nombre affiché.

0 sur 20 dans cette étape

11. La boucle infinie : la comprendre, l'arrêter, la reconnaître

Tu sais répéter un nombre connu de fois (for /l). Mais que se passe-t-il si on répète sans jamais s'arrêter ? C'est la boucle infinie. Bien utilisée, c'est utile (un menu qui revient sans cesse). Mal utilisée — ou cachée dans un fichier piégé — c'est une arme. On va comprendre les deux, et surtout garder le contrôle.

Étape 1 — Fabriquer une boucle avec goto

goto saute vers une étiquette (un nom précédé de :). Si l'étiquette est au-dessus du goto, ça recommence en boucle. Crée boucle.bat :

@echo off
:tour
echo Je tourne... (appuie sur Ctrl + C pour m'arreter)
goto tour

Étape 2 — SAVOIR L'ARRÊTER (le réflexe n°1)

Lance boucle.bat. Ça défile ? Reprends le contrôle :

Étape 3 — La bonne boucle : celle qui a une PORTE DE SORTIE

Une boucle infinie devient utile dès qu'on ajoute une condition pour en sortir. C'est le principe d'un menu :

:menu
set /p choix=Tape q pour quitter, autre chose pour recommencer :
if "%choix%"=="q" goto fin
echo Tu n'as pas quitte, je reviens au menu...
goto menu
:fin
echo A bientot !

Étape 4 — Volet cybersécurité : reconnaître une boucle malveillante

Certains fichiers .bat piégés cachent une boucle infinie qui relance des processus sans fin pour saturer la machine — c'est un déni de service local (souvent appelé fork bomb). Tu n'as pas à en fabriquer : tu dois savoir le reconnaître et t'en protéger.

FLAG-D2

Diagnostic de sécurité

Un camarade te montre ce .bat trouvé sur une clé USB (ne le tape pas, lis-le) :

@echo off
title Photos vacances
:x
start "" cmd
goto x

Réponds sur ta feuille : (1) quelle ligne crée la boucle infinie et pourquoi c'est dangereux ? (2) donne deux façons concrètes d'arrêter la machine si on l'exécutait par erreur.
Rends FLAG-D2- suivi du nom de l'instruction qui crée la boucle (un mot de 4 lettres).

0 sur 20 dans cette étape

12. Projet final : sauvegarde.bat interactif

On assemble tout : variables, questions, conditions, boucle-menu maîtrisée, robocopy et journal. Objectif : un vrai petit outil que GSB pourrait utiliser tous les jours.

Le script complet

Crée sauvegarde.bat dans C:\gsb-atelier et tape ceci (recopie tout, on l'explique juste après) :

@echo off
rem === Outil de sauvegarde GSB ===
set source=C:\gsb-atelier
set backup=C:\gsb-sauvegarde
set journal=C:\gsb-atelier\rapport.txt

:menu
cls
echo ==========================================
echo    SAUVEGARDE GSB
echo ==========================================
echo   1. Lancer la sauvegarde
echo   2. Voir le dernier rapport
echo   3. Quitter
echo.
set /p choix=Ton choix (1/2/3) :

if "%choix%"=="1" goto sauver
if "%choix%"=="2" goto rapport
if "%choix%"=="3" goto fin
echo Choix invalide, reessaie.
pause
goto menu

:sauver
echo.
echo Sauvegarde de %source% vers %backup%...
robocopy %source% %backup% /E /NP /LOG:%journal%
echo Termine le %date% a %time%.
pause
goto menu

:rapport
echo.
if exist %journal% (
  type %journal%
) else (
  echo Aucun rapport pour l'instant : lance d'abord une sauvegarde.
)
pause
goto menu

:fin
echo A bientot !

Comment ça marche — les blocs clés

BlocCe qu'il fait
set source=… / backup=… / journal=…Range les 3 chemins dans des variables. Pour changer de dossier, tu modifies UNE ligne, pas tout le script.
:menu … goto menuLa boucle-menu MAÎTRISÉE : elle revient au menu après chaque action, mais l'option 3 (goto fin) est la porte de sortie.
cls« Clear screen » : efface l'écran pour un menu propre à chaque tour.
if "%choix%"=="1" goto sauverAiguille vers le bon bloc selon le choix tapé.
robocopy … /E /NP /LOG:%journal%La sauvegarde robuste vue en Partie 1, avec journal.
if exist %journal% (…) else (…)N'affiche le rapport que s'il existe déjà — sinon un message clair.

FLAG-B5

Ton outil de sauvegarde

Fais tourner sauvegarde.bat de bout en bout : une sauvegarde réussie, puis l'affichage du rapport, puis la sortie propre par l'option 3.
Rends FLAG-B5-OK + colle ton script (ou une capture du menu) sur ta feuille.

0 sur 20 dans cette étape

Aide-mémoire — toutes les commandes de base

Ta antisèche à garder sous les yeux. (Rappel : commande /? donne l'aide détaillée de n'importe laquelle.)

Se repérer & naviguer

cdoù suis-je ?
cd nomentrer dans un dossier
cd ..remonter d'un cran
cd \aller à la racine
cd /d D:\changer de disque
pushd / popdsaut aller / retour
start .ouvrir l'explorateur ici

Explorer & lire

dirlister
dir /a /s /bcachés / récursif / bruts
tree /farborescence visuelle
type / moreafficher un fichier
findstrchercher du texte
wherelocaliser un programme
| find /ccompter des lignes

Manipuler des fichiers

mkdircréer un dossier
copycopier un fichier
xcopy /E /Icopier une arborescence
robocopy /Esauvegarde robuste
movedéplacer
renrenommer
del / rmdir /ssupprimer fichier / dossier

Machine, confort & scripts

cls · ver · hostnameécran / version / nom
whoami · ipconfigqui / réseau
tasklist / taskkill /Fvoir / tuer un programme
↑ · Tab · Ctrl+Chistorique / compléter / stopper
@echo off · pauseen-tête / attendre (.bat)
set · set /p · set /avariable / saisie / calcul
if · for · gotodécider / répéter / boucler

On fait le point

Récapitulatif — ce que tu sais faire maintenant

Tu sais…Avec
Ouvrir un terminal et lire l'invitecmd, powershell
Savoir où tu es et ce qu'il y acd, dir
Ouvrir l'explorateur & faire le pontWin+E, Ctrl+E, start .
Te déplacer partoutcd nom, cd .., cd \, cd /d, pushd/popd
Explorer & liredir /a /s /b, tree, type, findstr, where
Déplacer, renommer, supprimermove, ren, del, rmdir
Inspecter la machinever, hostname, whoami, ipconfig, tasklist
Trouver de l'aide seulcommande /?, help
Créer des dossiersmkdir
Copier un ou plusieurs fichierscopy, joker *, /Y
Copier une arborescence complètexcopy /E /I
Faire une sauvegarde robuste et journaliséerobocopy /E /LOG:, /MIR
Faire les mêmes gestes en PowerShellCopy-Item -Recurse
Écrire et lancer un script.bat, @echo off, echo, rem, pause
Mémoriser, demander, calculerset, %var%, set /p, set /a
Décider et répéterif / if exist / else, for, for /l
Maîtriser une boucle (et l'arrêter)goto, porte de sortie, Ctrl+C, taskkill
Reconnaître une boucle malveillante et s'en défendrelecture d'un .bat, extensions visibles, art. 323-1
Assembler un outil completsauvegarde.bat (menu + robocopy + journal)

Mini-quiz — vérifie-toi (corrigé juste dessous)

Exercice Réussi À revoir

  1. Quelle commande affiche le dossier où tu te trouves ?
  2. Pour copier un dossier et ses sous-dossiers avec xcopy, quelles deux options mets-tu le plus souvent ?
  3. robocopy affiche « a retourné 1 » en finissant. C'est une erreur ?
  4. En PowerShell, quel mot ajoute-t-on à Copy-Item pour copier tout le contenu d'un dossier ?
  5. Dans un .bat, quelle ligne mets-tu en premier pour que les commandes ne s'affichent pas, et quelle commande fait attendre avant de fermer ?
  6. Quelle est LA différence entre une boucle goto maîtrisée et une boucle infinie dangereuse ?
  7. Tu reçois un bonus.bat inconnu par mail. Quel est le bon réflexe avant de double-cliquer ?
Voir le corrigéMasquer le corrigé de l'exercice
  1. cd (tapé seul). — 2) /E (sous-dossiers) et /I (crée la destination comme dossier). — 3) Non : 1 = « des fichiers ont bien été copiés » ; l'erreur commence à 8. — 4) -Recurse. — 5) @echo off en première ligne ; pause pour attendre. — 6) La porte de sortie : la boucle maîtrisée a une condition qui fait goto fin ; l'infinie n'en a aucune. — 7) Ne pas l'exécuter : l'ouvrir dans le Bloc-notes (clic droit → Modifier) pour le LIRE d'abord — et ne jamais lancer un .bat d'origine inconnue.

Tu avais trouvé ?

Checklist — « Tu es bloqué ? »

Glossaire

cmdL'invite de commandes Windows (le terminal historique).
PowerShellLe terminal moderne de Windows, commandes en Verbe-Nom.
Invite / promptLe texte en début de ligne indiquant où tu es (C:\…>).
Chemin absoluAdresse complète depuis la racine, ex. C:\gsb-atelier\exports.
Chemin relatifAdresse depuis là où tu es, ex. modeles\courrier.txt.
Joker *« n'importe quoi », ex. *.txt = tous les fichiers .txt.
Redirection >Envoie la sortie d'une commande dans un fichier au lieu de l'écran.
Miroir (/MIR)Rendre la destination identique à la source (copie ET supprime le surplus).
Code de sortieNombre renvoyé par une commande pour dire comment ça s'est passé (0 = ok…).

Défis bonus — pour les rapides

Tu as fini avant les autres ? Ces défis vont plus loin. Aucune correction ici : tu cherches, tu testes, tu notes ta démarche.

Défi E1

Ta sauvegarde en 1 double-clic (script .bat)

Crée un fichier sauvegarde.bat dans C:\gsb-atelier contenant :

@echo off
robocopy C:\gsb-atelier C:\gsb-sauvegarde /E /NP
echo Sauvegarde terminee le %date% a %time%
pause

Double-clique dessus. Explique en 2 lignes ce que fait chaque commande (@echo off, %date%, pause). Livrable : le .bat qui marche + ton explication.

0 sur 20 dans cette étape

Défi E2

Le miroir qui nettoie

Dans C:\gsb-sauvegarde, crée à la main un fichier bidon vieux.txt (qui n'existe pas dans la source). Lance robocopy C:\gsb-atelier C:\gsb-sauvegarde /MIR. Que devient vieux.txt ? Livrable : ce que tu observes + une phrase sur le danger de /MIR si on inverse source et destination.

0 sur 20 dans cette étape

Défi E3

Sauvegarde datée (investigation)

On voudrait un dossier de sauvegarde nommé avec la date du jour, ex. gsb-2026-09-02. Cherche comment récupérer la date dans une variable .bat (indice : %date% et la commande set). Livrable : la ligne qui crée C:\gsb-JJ-MM automatiquement (même approximative — on discutera des pièges de format ensemble).

0 sur 20 dans cette étape

Défi E4

Enrichis ton menu

Ajoute à sauvegarde.bat une 4ᵉ option « Compter les fichiers du dossier de travail » qui réutilise la boucle for du chapitre 10 et affiche le total. Livrable : le nouveau bloc :compter + la ligne if "%choix%"=="4" goto compter.

0 sur 20 dans cette étape

Défi E5

Reprendre le contrôle (défense)

Lance ta boucle.bat (le compteur sans fin du chapitre 11) dans une fenêtre, puis, depuis une AUTRE fenêtre cmd, arrête-la en ligne de commande. Cherche la syntaxe de taskkill pour viser un processus par son nom. Livrable : la commande exacte que tu as utilisée + ce que tu observes.

0 sur 20 dans cette étape

Compétences mobilisées (référentiel BTS SIO)

BlocCompétenceCe qui est travaillé ici
Bloc 3 · Cybersécurité des services informatiquesC3.4 — Garantir la disponibilité, l'intégrité et la confidentialité des services informatiques et des données→ Recenser les conséquences d'une perte de DIC (pourquoi sauvegarder)
→ Organiser la collecte et la conservation des preuves numériques (sauvegarde journalisée robocopy /LOG, notion de miroir)
Bloc 3 · Cybersécurité des services informatiquesC3.3 — Sécuriser les équipements et les usages des utilisateurs→ Informer les utilisateurs sur les risques (reconnaître un .bat piégé / une boucle malveillante)
→ Identifier les menaces et mettre en œuvre les défenses (ne pas exécuter l'inconnu, extensions visibles, Gestionnaire des tâches)
Bloc 1 · Support et mise à disposition de services informatiquesC1.1 — Gérer le patrimoine informatique→ Maintenir à jour la documentation technique (organiser une arborescence de travail claire, la reproduire)

Windows terminé ?

Coche chaque livrable quand tu l'as : c'est la preuve que l'étape est acquise.

livrables
–
quiz réussi
–
de série
–
Voir toutes les étapes du TP