420-1Q1-AA Help

Les instructions de contrôle

Les instructions de contrôle dans les fichiers shell sous Windows permettent de gérer la logique du script, comme les conditions, les boucles, ou encore les sauts d'exécution.

1. if

La commande if permet d'exécuter des commandes en fonction de conditions. Elle peut tester l'égalité entre des chaînes de caractères, comparer des nombres, ou vérifier des erreurs.

Syntaxe

if [condition] [commande]

Exemples

  • Comparer des chaînes de caractères :

    @echo off set /p nom="Entrez votre nom : " if %nom%==Jean ( echo Bonjour Jean ! ) else ( echo Vous n'êtes pas Jean. )
  • Comparer des nombres :

    @echo off set /p age="Quel âge avez-vous ? " if %age% gtr 18 ( echo Vous êtes majeur. ) else ( echo Vous êtes mineur. )
  • Tester l'existence d'un fichier :

    @echo off if exist fichier.txt ( echo Le fichier existe. ) else ( echo Le fichier n'existe pas. )

2. for

La commande for permet de créer des boucles pour exécuter une commande sur plusieurs fichiers, dossiers ou éléments d'une liste.

Syntaxe

for %%variable in (ensemble) do [commande]

Exemples

  • Boucle sur des fichiers dans un répertoire :

    @echo off for %%f in (*.txt) do ( echo Traitement du fichier %%f )
  • Boucle sur une liste :

    @echo off for %%x in (apple orange banana) do ( echo Fruit : %%x )

3. goto

La commande goto permet de sauter à une étiquette définie pour continuer l'exécution du script à cet endroit.

Syntaxe

goto [étiquette]

Exemple

  • Utiliser goto pour des sauts conditionnels :

    @echo off set /p choix="Voulez-vous continuer ? (o/n) : " if %choix%==o goto continuer if %choix%==n goto fin :continuer echo Continuons ! goto fin :fin echo Fin du script.

4. choice

La commande choice permet à l'utilisateur de choisir une option dans une liste.

Syntaxe

choice /c [options] /m "Message"

Exemple

  • Exemple d'utilisation de choice:

    @echo off choice /c yn /m "Voulez-vous continuer ?" if %errorlevel%==1 echo Vous avez choisi Oui. if %errorlevel%==2 echo Vous avez choisi Non.

5. setlocal et endlocal

Les commandes setlocal et endlocal sont utilisées pour créer une zone où les variables locales sont définies.

Syntaxe

setlocal [commandes] endlocal

Exemple

@echo off set globalVar=Global echo Avant le setlocal, globalVar=%globalVar% setlocal set localVar=Local echo Dans le setlocal, localVar=%localVar% endlocal echo Après le setlocal, globalVar=%globalVar% echo Après le setlocal, localVar=%localVar% (devrait être vide)

6. call

La commande call permet d'exécuter un autre fichier shell ou une sous-routine dans le même fichier.

Syntaxe

call [fichier.bat] call :label

Exemple

  • Appeler une sous-routine dans le même fichier :

    @echo off call :sous_routine echo Retour à la routine principale goto fin :sous_routine echo Ceci est une sous-routine goto :eof :fin echo Fin du script.

7. exit

La commande exit permet de quitter le script shell.

Syntaxe

exit [/b] [code_erreur]

Exemples

  • Quitter avec un code d'erreur :

    @echo off set /p age="Entrez votre âge : " if %age% lss 18 ( echo Vous êtes mineur. exit /b 1 ) echo Vous êtes majeur.

8. rem

La commande rem permet d’ajouter des commentaires dans un fichier shell. Ces commentaires ne sont pas exécutés.

Syntaxe

rem [commentaire]

Exemple

@echo off rem Ce script affiche un message de bienvenue. echo Bonjour, bienvenue dans ce fichier shell.

Commandes de redirections

Les commandes de redirection en batch sous Windows sont des outils puissants permettant de rediriger l'entrée, la sortie et les erreurs des commandes.

Redirections de sortie standard

Rediriger la sortie vers un fichier (> et >>)

  • >: Écrase le contenu du fichier (ou le crée s'il n'existe pas) avec la sortie d'une commande.

  • >>: Ajoute la sortie d'une commande à la fin du fichier, sans écraser le contenu existant.

Exemples :

  • dir > liste_fichiers.txt: Enregistre la liste des fichiers du répertoire actuel dans liste_fichiers.txt (écrase le fichier si déjà existant).

  • echo Bonjour >> message.txt: Ajoute le texte "Bonjour" à la fin du fichier message.txt.

Rediriger la sortie d'erreur standard (2>)

  • 2>: Redirige les messages d'erreur vers un fichier.

  • 2>>: Ajoute les messages d'erreur à la fin du fichier.

Exemple :

  • dir dossier_inexistant 2> erreur.txt: Enregistre le message d'erreur généré par la commande dir (si le dossier n'existe pas) dans erreur.txt.

Redirections combinées

Rediriger la sortie et l'erreur dans le même fichier

  • Vous pouvez rediriger à la fois la sortie standard et les erreurs standard dans un même fichier en utilisant > et 2>&1.

Exemple :

  • dir > sortie_et_erreurs.txt 2>&1: Enregistre à la fois la sortie normale et les messages d'erreur dans sortie_et_erreurs.txt.

Redirection d'entrée standard (<)

  • <: Permet à une commande de lire les entrées depuis un fichier au lieu du clavier.

Exemple :

  • find "texte" < fichier.txt: Recherche le mot "texte" dans le fichier fichier.txt.

Résumé des opérateurs

Opérateur

Description

>

Redirige la sortie vers un fichier (écrase le fichier).

>>

Redirige la sortie vers un fichier (ajoute au fichier).

2>

Redirige les erreurs vers un fichier (écrase le fichier).

2>>

Redirige les erreurs vers un fichier (ajoute au fichier).

2>&1

Redirige les erreurs vers la même destination que la sortie normale.

<

Redirige l'entrée depuis un fichier.

Ces commandes sont très utiles pour automatiser des tâches et enregistrer les résultats ou erreurs dans des fichiers log, ce qui facilite l'analyse des scripts batch.

Last modified: 16 October 2024