Zweck:Ausführen einer Batch-Datei innerhalb einer anderen.

 

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

 

fileDie auszuführende Batch-Datei.
:labelEin Label in der aktuellen Batchdatei.
p1, p2,...Parameter für die Stapeldatei oder Unterroutine

 

Siehe auch: CANCEL und QUIT.

 

Verwendung:

 

Aufrufen anderer Batch-Dateien

 

Mit CALL können Batchdateien andere Batchdateien aufrufen (Batchdateischachtelung). Die aufrufende Batchdatei wird angehalten, während die aufgerufene (zweite) Batchdatei läuft. Wenn die zweite Batchdatei beendet ist (ohne den Befehl CANCEL auszuführen), wird die Ausführung der ursprünglichen Batchdatei mit dem nächsten Befehl fortgesetzt.

 

WARNUNG! Wenn Sie eine Batch-Datei innerhalb einer anderen Batch-Datei ausführen, ohne CALL zu verwenden, wird die ursprüngliche Batch-Datei beendet, bevor die andere gestartet wird. Diese Methode, eine Batchdatei von einer anderen aus aufzurufen, wird gewöhnlich als Verkettung bezeichnet.  Wenn die Stapeldatei A.BTM CALL Bverwendet  und B.BTM mit der Stapeldatei C.BTMverkettet ist , wird beim Verlassen von C.BTM (ohne Ausführung eines  CANCEL-Befehls)  die  Verarbeitung der Stapeldatei A.BTM so fortgesetzt, als hätte sie CALL C verwendet .

 

Datei A.BTM:

 

...

call b

echo xxx

 

Datei B.BTM:

 

...

C

 

Datei C.BTM:

 

...

quit

 

Im obigen Beispiel wird nach der Ausführung des QUIT-Befehls in C.BTM als nächstes  der Befehl ECHO xxx in A.BTM ausgeführt .

 

Das folgende Batchdateifragment vergleicht eine Eingabezeile mit wp und ruft bei Übereinstimmung eine andere Batchdatei auf:

 

input Enter your choice: %%option

if "%option" == "wp" call wp.bat

 

Batchdateien können bis zu 64 Ebenen tief verschachtelt werden.

 

Der aktuelle ECHO-Zustand wird an eine aufgerufene Batchdatei vererbt.

 

Die aufgerufene Batchdatei sollte immer entweder zurückkehren (indem sie ihre letzte Zeile ausführt oder den  Befehl QUIT verwendet  ) oder die Verarbeitung der Batchdatei mit CANCEL beenden . Starten Sie die ursprüngliche Batchdatei nicht neu oder rufen Sie sie nicht von der aufgerufenen Datei aus auf, da dies zu einer Endlosschleife oder einem Stapelüberlauf führen kann.

 

Aufrufen eines Labels

 

Um die Kompatibilität mit CMDzu gewährleisten , das den  Befehl GOSUB für Unterprogramme in derselben Batch-Datei nicht unterstützt , können Sie ein Unterprogramm erstellen, das mit einem Label beginnt und durch eine der folgenden Optionen beendet wird:

 

das Ende der Stapeldatei

QUIT

EXIT

CANCEL

 

Beachten Sie, dass die letzten beiden Befehle die Kontrolle NICHT an den CALL-Befehl zurückgeben. Verwenden Sie nicht den  RETURN-Befehl!

 

Parameter, die an das Unterprogramm übergeben werden, sind wie in einer Batch-Dateials %1, %2, usw.zugänglich .

 

Exit-Code

 

CALL gibt einen Exit-Code zurück, der mit dem Return-Code der Batch-Datei übereinstimmt. Sie können diesen Exit-Code mit bedingten Befehlen (&& und ||) testen.

 

Siehe auch GOSUB und benutzerdefinierte Funktionen.