Objet :Exécuter un fichier batch à partir d'un autre.

 

Format :CALL file | :label [p1 [p2 ...]]

 

fileLe fichier batch à exécuter.
:labelUne étiquette dans le fichier batch actuel.
p1, p2,...Paramètres du fichier de traitement par lots ou de la sous-routine

 

Voir aussi : CANCEL et QUIT.

 

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.

 

Appel d'un label

 

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

•CANCEL

 

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.

 

Code de sortie

 

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.