Syntaxe batch
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Sujet | Syntaxe et structure des scripts batch |
| Interpréteur | cmd.exe
|
| Voir aussi | Batch · Routines (batch) · Menu (batch) |
Cette page récapitule la syntaxe de base des scripts batch : opérateurs de comparaison, variables, branchements conditionnels et boucles.
Opérateurs de comparaison
| Opérateur | Signification |
|---|---|
EQU |
égal à |
NEQ |
différent de |
LSS |
inférieur à |
LEQ |
inférieur ou égal à |
GTR |
supérieur à |
GEQ |
supérieur ou égal à |
Variables et saisie
:: Demander une saisie à l'utilisateur
set /p nom= Quel est votre nom ?
:: %1 est un paramètre d'entrée du script
dir /s %1 > %2
:: Périmètre de validité d'une variable
setlocal
set une_variable=une_valeur
... {des instructions} ...
endlocal
:: Opérations arithmétiques
set /a une_variable={expression arithmétique}
set /a compteur=%compteur%+1
set /a compteur+=1
:: Rediriger le canal d'erreur
uneCommande 2> nul
Branchements et boucles
:: Branchement conditionnel
if (condition) (commande1) else (commande2)
:: if exist
if exist unFichier.ext del unFichier.ext
if not exist unFichier.ext echo Pas de fichier
:: if defined
if defined uneVariable uneCommande
:: if errorlevel
if errorlevel n uneCommande
:: Comparaison de chaînes
if chaine1 == chaine2 uneCommande
if /i chaine1 gtr chaine2 uneCommande
if "%1" == uneChaine uneCommande
:: goto
goto :label
... {quelques commandes} ...
:label
... {d'autres commandes} ...
if (condition) goto :label
if (condition) goto :eof
Boucle construite avec if et goto, puis son équivalent avec for /l :
@echo off
set /a counter=0
:numbers
set /a counter=%counter%+1
if %counter% == 100 (goto :eof) else (echo %counter% >> E:\count.txt)
goto :numbers
@echo off
for /l %%X in (1,1,99) do (echo %%X >> E:\count.txt)
Itération avec for
Structure générale :
for {chaque élément} in {un ensemble d'éléments} do {commande}
for %%X in (ensemble) do (commande)
Commutateurs principaux :
| Option | Effet |
|---|---|
/D |
l'ensemble contient des répertoires |
/R |
exécution récursive dans les sous-répertoires |
/L |
boucle avec paramètres début, pas, fin |
/F |
parcours de fichiers ou de sorties de commandes |
Exemples :
:: Itération simple dans une liste
for %%X in (fichier1 fichier2 fichier3) do commande
for %%X in (eenie meenie miney moe) do (echo %%X)
for %%X in (*.jpg) do commande
for %%X in (*.jpg *.gif *.png *.bmp) do commande
:: Boucler sur une série de valeurs
for /l %%X in (début, pas, fin) do commande
for /l %%X in (1,1,99) do (echo %%X >> E:\nombres.txt)
:: Parcourir des répertoires
for /d %%X in (ensembleDeRepertoires) do commande
for /d %%X in (C:\*) do echo %%X
:: Parcourir récursivement les sous-répertoires
for /r [repertoireParent] %%X in (ensemble) do commande
for /r C:\photos %%X in (*.jpg) do (echo %%X >> E:\listeJPG.txt)
:: Parcourir des fichiers, chaînes et sorties de commandes
for /f [options] %%X in (source) do commande
Voir aussi
- Batch — recueil de scripts batch
- Routines (batch) — sous-routines et fonctions
- Menu (batch) — menu interactif