| Objet : | Exécuter un fichier batch à partir d'un autre. |
| Format : | CALL file | :label [p1 [p2 ...]] |
| file | Le fichier batch à exécuter. |
| :label | Une étiquette dans le fichier batch actuel. |
| p1, p2,... | Paramètres du fichier de traitement par lots ou de la sous-routine |
Utilisation :
Appeler d'autres fichiers batch
CALL permet aux fichiers batch d'appeler d'autres fichiers batch (imbrication de fichiers batch). Le fichier batch appelant est suspendu pendant que le fichier batch appelé (second) s'exécute. Lorsque le second fichier batch se termine (sans exécuter la commande CANCEL), l'exécution du fichier batch d'origine reprend à la commande suivante.
ATTENTION ! Si vous exécutez un fichier batch à partir d'un autre fichier batch sans utiliser la commande CALL, le fichier batch d'origine se termine avant que l'autre ne démarre. Cette méthode d'invocation d'un fichier batch à partir d'un autre est généralement appeléechaînage. Notez que si le fichier batch A.BTM utilise CALL B, et que B.BTM s'enchaîne au fichier batch C.BTM, à la sortie de C.BTM (sans exécuter de commande CANCEL), le traitement du fichier batch A.BTM est repris comme s'il avait utilisé CALL C.
Fichier A.BTM:
...
call b
echo xxx
Fichier B.BTM:
...
C
Fichier C.BTM:
...
quit
Dans l'exemple ci-dessus, après l'exécution de la commandeQUIT dans C.BTM, la commande ECHO xxx dans A.BTM est exécutée .
Le fragment de fichier batch suivant compare une ligne d'entrée à wp et appelle un autre fichier batch en cas de correspondance:
input Enter your choice: %%option
if "%option" == "wp" call wp.bat
Les fichiers batch peuvent être imbriqués jusqu'à 64 niveaux.
L'état ECHO actuel est hérité par un fichier batch appelé.
Le fichier batch appelé doit toujours revenir (en exécutant sa dernière ligne ou en utilisant la commande QUIT ) ou mettre fin au traitement du fichier batch avec la commande CANCEL. Ne redémarrez pas ou n'appelez pas le fichier batch original à partir du fichier appelé, car cela pourrait provoquer une boucle infinie ou un débordement de la pile.
Pour assurer la compatibilité avec CMD, qui ne prend pas en charge la commandeGOSUB pour les sous-routines dans le même fichier de lot, vous pouvez créer une sous-routine commençant par une étiquette et se terminant par l'un des éléments suivants :
•la fin du fichier batch
•QUIT
•EXIT
Notez que les deux derniers ne renvoient PAS le contrôle à la commande CALL. N'utilisez pas la commandeRETURN!
Lesparamètres passés à la sous-routine sont accessibles en tant que %1, %2, etc., de la même manière que dans un fichier batch.
CALL renvoie un code de sortie qui correspond au code de retour du fichier batch. Vous pouvez tester ce code de sortie avec des commandes conditionnelles (&& et ||).
Voir également GOSUB et les fonctions définies par l'utilisateur.