Script Batch - Codes de Retour

Salut à tous, futurs programmeurs ! Aujourd'hui, nous allons plonger dans un sujet passionnant du scripting Batch : les Codes de Retour. Ne vous inquiétez pas si vous êtes complètement nouveau dans la programmation ; je vais vous guider à travers ce voyage pas à pas, tout comme j'ai fait avec des centaines d'étudiants au fil des ans. Alors, prenez une tasse de café (ou votre boisson favorite), et c'est parti !

Batch Script - Return Code

Comprendre les Codes de Retour

Avant de rentrer dans les détails, comprenons ce qu'est un code de retour. Imaginez que vous envoyez votre ami robot sur une mission. Quand il revient, vous voudriez savoir si la mission a été un succès, n'est-ce pas ? C'est exactement ce que font les codes de retour dans la programmation. Ce sont comme de petits messages que les programmes renvoient pour nous dire s'ils ont terminé leur tâche avec succès ou si quelque chose s'est mal passé.

Dans le scripting Batch, ces codes de retour sont souvent appelés "niveaux d'erreur". Explorons cette notion plus en détail.

Niveau d'Erreur

Dans Batch, le niveau d'erreur est une variable spéciale qui contient le code de retour de la dernière commande ou du dernier programme exécuté. C'est comme un bulletin de notes qui nous dit à quel point une commande a bien (ou mal) fonctionné.

Vérifier le Niveau d'Erreur

Pour vérifier le niveau d'erreur, nous utilisons la variable %ERRORLEVEL%. Voici un exemple simple :

@echo off
dir C:\NonExistentFolder
echo Le niveau d'erreur est %ERRORLEVEL%

Si vous exécutez ce script, vous verrez quelque chose comme ceci :

File Not Found
Le niveau d'erreur est 1

La commande dir n'a pas trouvé le dossier, donc elle a retourné un niveau d'erreur de 1. Si le dossier existait, le niveau d'erreur serait 0.

Utiliser les Niveaux d'Erreur pour Prendre des Décisions

Les niveaux d'erreur sont extrêmement utiles pour prendre des décisions dans vos scripts. Voici un exemple :

@echo off
ping google.com
if %ERRORLEVEL% EQU 0 (
echo La connexion internet fonctionne !
) else (
echo Oups ! Pas de connexion internet.
)

Dans ce script, nous vérifions si nous pouvons ping Google. Si le ping est successful (niveau d'erreur 0), nous savons que l'internet fonctionne. Sinon, nous affichons un message d'erreur.

Boucles

Maintenant que nous comprenons les niveaux d'erreur, regardons comment les utiliser dans les boucles. Les boucles sont comme une merry-go-round pour votre code, vous permettant de répéter des actions jusqu'à ce qu'une certaine condition soit remplie.

Structure de Boucle de Base

Voici une boucle simple qui compte de 1 à 5 :

@echo off
set counter=1
:loop
if %counter% LEQ 5 (
echo Le compteur est %counter%
set /a counter+=1
goto loop
)
echo La boucle est terminée !

Ce script affichera :

Le compteur est 1
Le compteur est 2
Le compteur est 3
Le compteur est 4
Le compteur est 5
La boucle est terminée !

Utiliser les Niveaux d'Erreur dans les Boucles

Nous pouvons combiner les boucles avec les niveaux d'erreur pour créer des scripts plus dynamiques. Voici un exemple :

@echo off
:retry
ping google.com
if %ERRORLEVEL% NEQ 0 (
echo Échec de la connexion. Nouvel essai dans 5 secondes...
timeout /t 5 >nul
goto retry
)
echo Connexion réussie !

Ce script continuera à essayer de ping Google jusqu'à ce qu'il réussisse. C'est comme un petit robot persévérant qui ne renonce pas avant d'avoir terminé sa mission !

Parcourir les Arguments de la Ligne de Commande

Les arguments de la ligne de commande sont comme des instructions spéciales que vous donnez à votre script lorsque vous le démarrez. Voyons comment nous pouvons boucler à travers ces arguments.

Boucle de Base sur les Arguments

Voici un script qui affiche tous les arguments que vous lui donnez :

@echo off
:loop
if "%1"=="" goto end
echo Argument : %1
shift
goto loop
:end
echo Tous les arguments ont été traités !

Si vous exécutez ce script avec script.bat apple banana cherry, il affichera :

Argument : apple
Argument : banana
Argument : cherry
Tous les arguments ont été traités !

Utiliser les Niveaux d'Erreur avec les Arguments

Créons un script plus avancé qui vérifie si les fichiers passés en arguments existent :

@echo off
:loop
if "%1"=="" goto end
if exist %1 (
echo %1 existe
) else (
echo %1 n'existe pas
set ERRORLEVEL=1
)
shift
goto loop
:end
if %ERRORLEVEL% NEQ 0 (
echo Certains fichiers n'ont pas été trouvés
) else (
echo Tous les fichiers existent
)

Ce script vérifie chaque fichier passé en argument. Si un fichier n'existe pas, il met le niveau d'erreur à 1. À la fin, il vous dit si tous les fichiers ont été trouvés ou si certains manquent.

Conclusion

Félicitations ! Vous avez刚刚 vos premiers pas dans le monde du scripting Batch avec les codes de retour. Souvenez-vous, comme pour apprendre n'importe quelle nouvelle langue, la pratique est clé. N'ayez pas peur d'expérimenter et de faire des erreurs - c'est ainsi que nous apprenons tous !

Voici un tableau de réference rapide des méthodes que nous avons couvertes :

Méthode Description
%ERRORLEVEL% Variable pour vérifier le code de retour de la dernière commande
if %ERRORLEVEL% EQU 0 Vérifier si la dernière commande a réussi
goto label Sauter à une étiquette spécifique dans le script
set /a variable+=1 Incrémenter une variable
shift Passer à l'argument de ligne de commande suivant
if exist filename Vérifier si un fichier existe

Continuez à coder, continuez à apprendre, et surtout, amusez-vous ! Souvenez-vous, chaque expert était autrefois un débutant. Qui sait ? Peut-être que vous écrirez vos propres tutoriels de programmation un jour !

Credits: Image by storyset