Script Batch - Fonctions
Salut à toi, aspirant(e)s programmeur(euse)s ! Aujourd'hui, nous allons plonger dans le merveilleux monde des fonctions dans les scripts Batch. En tant que votre enseignant informatique de quartier, je suis excité de vous guider dans cette aventure. Alors, prends une tasse de ta boisson favorite et c'est parti !
Qu'est-ce que les fonctions ?
Avant de rentrer dans les détails, comprendre ce qu'elles sont. Les fonctions sont comme de petits assistants dans ton script. Ce sont des mini-programmes dans ton programme principal qui effectuent des tâches spécifiques. Comme tu pourrais demander à un ami de t'aider avec une corvée particulière, tu peux appeler ces fonctions pour faire des jobs spécifiques dans ton script.
Définition des fonctions
Maintenant, apprenons à créer ces petits amis utiles. Dans les scripts Batch, nous définissons des fonctions en utilisant des étiquettes. Voici la structure de base :
:functionName
REM Ton code de fonction va ici
REM ...
REM ...
goto :eof
Reprenons cela :
-
:functionName
est l'étiquette qui marque le début de ta fonction. - Les lignes suivant l'étiquette contiennent le code réel de ta fonction.
-
goto :eof
dit au script de sauter à la fin du fichier, mettant ainsi fin à la fonction.
Voici un exemple simple :
:sayHello
echo Hello, World!
goto :eof
Cette fonction, lorsqu'elle est appelée, affichera simplement "Hello, World!" dans la console.
Appel des fonctions
Maintenant que nous avons créé une fonction, comment l'utilisons-nous ? Nous utilisons la commande call
. Voici comment :
@echo off
call :sayHello
pause
:sayHello
echo Hello, World!
goto :eof
Lorsque tu exécutes ce script, il affichera :
Hello, World!
Appuie sur une touche pour continuer . . .
La commande call
dit au script d'exécuter notre fonction sayHello
.
Fonctions avec des paramètres
Les fonctions deviennent encore plus puissantes lorsque nous pouvons leur passer des informations. Ces morceaux d'information sont appelés paramètres. Modifions notre fonction sayHello
pour saluer une personne spécifique :
@echo off
call :sayHello John
pause
:sayHello
echo Hello, %~1!
goto :eof
Sortie :
Hello, John!
Appuie sur une touche pour continuer . . .
Dans cet exemple, %~1
représente le premier paramètre passé à la fonction. Lorsque nous appelons sayHello John
, "John" devient ce premier paramètre.
Fonctions avec plusieurs paramètres
Nous pouvons passer plusieurs paramètres à une fonction. Créons une fonction qui additionne deux nombres :
@echo off
call :addNumbers 5 3
pause
:addNumbers
set /a result=%~1 + %~2
echo La somme de %~1 et %~2 est %result%
goto :eof
Sortie :
La somme de 5 et 3 est 8
Appuie sur une touche pour continuer . . .
Ici, %~1
représente le premier paramètre (5), et %~2
représente le second paramètre (3).
Retour de valeurs des fonctions
En scripting Batch, les fonctions ne retournent pas de valeurs dans le sens traditionnel. Cependant, nous pouvons utiliser des variables d'environnement pour simuler ce comportement :
@echo off
call :multiply 6 7
echo Le résultat est %result%
pause
:multiply
set /a result=%~1 * %~2
goto :eof
Sortie :
Le résultat est 42
Appuie sur une touche pour continuer . . .
Dans cet exemple, la fonction multiply
définit une variable result
, que nous pouvons utiliser dans notre script principal.
Variables locales dans les fonctions
Lorsque tu travailles avec des fonctions, il est souvent une bonne idée d'utiliser des variables locales pour éviter d'interférer avec les variables du script principal. Nous pouvons faire cela en utilisant les commandes setlocal
et endlocal
:
@echo off
set globalVar=Je suis global
call :localVarDemo
echo Après l'appel de la fonction : %globalVar%
pause
:localVarDemo
setlocal
set globalVar=Je suis local
echo À l'intérieur de la fonction : %globalVar%
endlocal
goto :eof
Sortie :
À l'intérieur de la fonction : Je suis local
Après l'appel de la fonction : Je suis global
Appuie sur une touche pour continuer . . .
La commande setlocal
crée un nouvel environnement pour la fonction, et endlocal
le supprime lorsque la fonction se termine, préservant la valeur originale de globalVar
.
Bibliothèques de fonctions
À mesure que tes scripts deviennent plus complexes, tu pourrais te trouver à utiliser les mêmes fonctions dans plusieurs scripts. Au lieu de copier et coller ces fonctions dans chaque script, tu peux créer une bibliothèque de fonctions :
- Crée un nouveau fichier, appelons-le
myFunctions.bat
- Met dans ce fichier tes fonctions couramment utilisées
- Dans ton script principal, utilise la commande
call
pour exécuter ce fichier avant d'utiliser ses fonctions
myFunctions.bat :
:sayHello
echo Hello, %~1!
goto :eof
:addNumbers
set /a result=%~1 + %~2
goto :eof
mainScript.bat :
@echo off
call myFunctions.bat
call :sayHello World
call :addNumbers 10 20
echo La somme est %result%
pause
Cette approche aide à maintenir ton code organisé et réutilisable.
Méthodes courantes pour les fonctions
Voici un tableau des méthodes courantes liées aux fonctions dans les scripts Batch :
Méthode | Description |
---|---|
call | Appelle une fonction |
goto :eof | Met fin à une fonction |
%~1, %~2, etc. | Accède aux paramètres de la fonction |
setlocal | Crée un environnement local pour les variables |
endlocal | Termine l'environnement local |
souviens-toi, la pratique rend parfait ! N'aie pas peur d'expérimenter avec ces concepts. Crée tes propres fonctions, joue avec les paramètres, et vois ce que tu peux construire. Avant de t'en rendre compte, tu écriras des scripts Batch complexes avec facilité !
Bonne programmation, futurs programmeurs !
Credits: Image by storyset