Script de lot - Code de retour

Par défaut, lorsqu'une exécution de ligne de commande est terminée, elle doit renvoyer zéro lorsque l'exécution réussit ou différent de zéro lorsque l'exécution échoue. Lorsqu'un script batch renvoie une valeur différente de zéro après l'échec de l'exécution, la valeur différente de zéro indiquera quel est le numéro d'erreur. Nous utiliserons ensuite le numéro d'erreur pour déterminer la nature de l'erreur et la résoudre en conséquence.

Voici le code de sortie commun et leur description.

Code d'erreur La description
0 Programme terminé avec succès.
1 Fonction incorrecte. Indique que Action a tenté d'exécuter une commande non reconnue dans l'invite de commande Windows cmd.exe.
2 Le système ne peut pas trouver le fichier spécifié. Indique que le fichier est introuvable à l'emplacement spécifié.
3 Le système ne peut pas trouver le chemin spécifié. Indique que le chemin spécifié est introuvable.
5 L'accès est refusé. Indique que l'utilisateur n'a aucun droit d'accès à la ressource spécifiée.

9009

0x2331

Le programme n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes. Indique que la commande, le nom de l'application ou le chemin a été mal orthographié lors de la configuration de l'action.

221225495

0xC0000017

-1073741801

La mémoire virtuelle disponible est insuffisante.

Cela indique que Windows n'a plus de mémoire.

3221225786

0xC000013A

-1073741510

L'application s'est arrêtée à la suite d'un CTRL + C. Indique que l'application a été arrêtée par l'entrée au clavier de l'utilisateur CTRL + C ou CTRL + Pause ou par la fermeture de la fenêtre d'invite de commande.

3221225794

0xC0000142

-1073741502

L'application n'a pas pu être démarrée correctement. Indique que l'application a été lancée sur un bureau sur lequel l'utilisateur actuel n'a aucun droit d'accès. Une autre cause possible est que gdi32.dll ou user32.dll n'a pas pu s'initialiser.

Niveau d'erreur

La variable d'environnement% ERRORLEVEL% contient le code retour du dernier programme ou script exécuté.

Par défaut, le moyen de vérifier le NIVEAU D'ERREUR est via le code suivant.

Syntaxe

IF %ERRORLEVEL% NEQ 0 ( 
   DO_Something 
)

Il est courant d'utiliser la commande EXIT / B% ERRORLEVEL% à la fin du fichier batch pour renvoyer les codes d'erreur du fichier batch.

EXIT / B à la fin du fichier batch arrêtera l'exécution d'un fichier batch.

Utilisez EXIT / B <exitcodes> à la fin du fichier de commandes pour renvoyer des codes de retour personnalisés.

La variable d'environnement% ERRORLEVEL% contient le dernier niveau d'erreur dans le fichier de commandes, qui correspond aux derniers codes d'erreur de la dernière commande exécutée. Dans le fichier de commandes, il est toujours recommandé d'utiliser des variables d'environnement au lieu de valeurs constantes, car la même variable est étendue à différentes valeurs sur différents ordinateurs.

Regardons un exemple rapide sur la façon de vérifier les codes d'erreur à partir d'un fichier de commandes.

Exemple

Supposons que nous ayons un fichier batch appelé Find.cmd qui contient le code suivant. Dans le code, nous avons clairement mentionné que si nous ne trouvons pas le fichier appelé lists.txt, nous devons définir le niveau d'erreur sur 7. De même, si nous voyons que la variable userprofile n'est pas définie, nous devons définir le code errorlevel sur 9.

if not exist c:\lists.txt exit 7 
if not defined userprofile exit 9 
exit 0

Supposons que nous ayons un autre fichier appelé App.cmd qui appelle d'abord Find.cmd. Maintenant, si Find.cmd renvoie une erreur dans laquelle il définit le niveau d'erreur à plus de 0, il quitterait le programme. Dans le fichier de commandes suivant, après avoir appelé la recherche Find.cnd, il vérifie en fait si le niveau d'erreur est supérieur à 0.

Call Find.cmd

if errorlevel gtr 0 exit 
echo “Successful completion”

Production

Dans le programme ci-dessus, nous pouvons avoir les scénarios suivants comme sortie -

  • Si le fichier c: \ lists.txt n'existe pas, rien ne sera affiché dans la sortie de la console.

  • Si la variable userprofile n'existe pas, rien ne sera affiché dans la sortie de la console.

  • Si les deux conditions ci-dessus réussissent, la chaîne «Achèvement réussi» sera affichée dans l'invite de commande.

Boucles

Dans le chapitre sur la prise de décision, nous avons vu des instructions qui ont été exécutées les unes après les autres de manière séquentielle. En outre, les implémentations peuvent également être effectuées dans Batch Script pour modifier le flux de contrôle dans la logique d'un programme. Ils sont ensuite classés en flux d'énoncés de contrôle.

S. Non Boucles et description
1 Pendant la mise en œuvre de la déclaration

Il n'y a pas d'instruction while directe disponible dans Batch Script, mais nous pouvons faire une implémentation de cette boucle très facilement en utilisant l'instruction if et les étiquettes.

2 Instruction For - Implémentations de liste

La construction "FOR" offre des capacités de bouclage pour les fichiers batch. Voici la construction commune de l'instruction «for» pour travailler avec une liste de valeurs.

3 Boucle à travers les plages

L'instruction «for» a également la possibilité de parcourir une plage de valeurs. Voici la forme générale de la déclaration.

4 Implémentation classique pour la boucle

Voici la déclaration classique «pour» qui est disponible dans la plupart des langages de programmation.

Lecture en boucle des arguments de ligne de commande

L'instruction «for» peut également être utilisée pour vérifier les arguments de ligne de commande. L'exemple suivant montre comment l'instruction 'for' peut être utilisée pour parcourir les arguments de ligne de commande.

Exemple

@ECHO OFF 
:Loop 

IF "%1"=="" GOTO completed 
FOR %%F IN (%1) DO echo %%F 
SHIFT 
GOTO Loop 
:completed

Production

Supposons que notre code ci-dessus soit stocké dans un fichier appelé Test.bat. La commande ci-dessus produira la sortie suivante si le fichier de commandes transmet les arguments de ligne de commande de 1, 2 et 3 comme Test.bat 1 2 3.

1 
2 
3

S. Non Boucles et description
1 Mise en œuvre de l'instruction Break

L'instruction break est utilisée pour modifier le flux de contrôle à l'intérieur des boucles dans n'importe quel langage de programmation. L'instruction break est normalement utilisée dans les constructions en boucle et est utilisée pour provoquer l'arrêt immédiat de la boucle englobante la plus interne.