Aufruf

Ruft ein Batchprogramm aus einem anderen auf, ohne das übergeordnete Batchprogramm zu beenden. Der call-Befehl akzeptiert Bezeichnungen als Ziel des Aufrufs.

Hinweis

Der Aufruf hat keine Auswirkung auf die Eingabeaufforderung, wenn er außerhalb eines Skripts oder einer Batchdatei verwendet wird.

Syntax

call [drive:][path]<filename> [<batchparameters>]] 
call [:<label> [<arguments>]]

Parameter

Parameter BESCHREIBUNG
[<drive>:][<path>]<filename> Gibt den Speicherort und Namen des neuen Batchprogramms an, das Sie aufrufen möchten. Der <filename>-Parameter ist erforderlich, und er muss über als Erweiterung „.bat“ oder „.cmd“ aufweisen.
<batchparameters> Gibt alle Befehlszeileninformationen an, die für das Batchprogramm erforderlich sind
:<label> Gibt die Bezeichnung an, zu der ein Batchprogramm springen soll
<arguments> Gibt die Befehlszeileninformationen beginnend bei :<label> an, die an die neue Instanz des Batchprogramms übergeben werden sollen.
/? Zeigt die Hilfe an der Eingabeaufforderung an.

Batchparameter

Die Verweise auf Batchskriptargumente (%0, %1 usw.) sind in den folgenden Tabellen aufgeführt.

Die Verwendung des Werts %* in einem Batchskript verweist auf alle Argumente (z. B. %1, %2, %3 usw.).

Sie können die folgenden optionalen Syntaxvarianten als Ersetzungen für Batchparameter (%n) verwenden:

Batchparameter BESCHREIBUNG
%~1 Erweitert %1 und entfernt umgebende Anführungszeichen
%~f1 Erweitert %1 auf einen vollqualifizierten Pfad
%~d1 Erweitert %1 auf nur einen Laufwerkbuchstaben
%~p1 Erweitert %1 auf nur einen Pfad
%~n1 Erweitert %1 auf nur einen Dateinamen
%~x1 Erweitert %1 auf nur eine Erweiterung
%~s1 Erweitert %1 auf einen vollqualifizierten Pfad, der nur Kurznamen enthält
%~a1 Erweitert %1 auf die Dateiattribute
%~t1 Erweitert %1 auf das Datum und die Uhrzeit der Datei
%~z1 Erweitert %1 auf die Größe der Datei
%~$PATH:1 Durchsucht die Verzeichnisse, die in der PATH-Umgebungsvariable aufgeführt sind, und erweitert %1 auf den vollqualifizierten Namen des ersten gefundenen Verzeichnisses. Wenn der Name der Umgebungsvariable nicht definiert ist oder die Datei nicht gefunden wurde, wird dieser Modifizierer auf eine leere Zeichenfolge erweitert.

Die folgende Tabelle zeigt, wie Sie durch die Kombination von Modifizierern mit den Batchparametern zusammengesetzte Ergebnisse erzielen:

Batchparameter mit Modifizierer BESCHREIBUNG
%~dp1 Erweitert %1 auf nur einen Laufwerkbuchstaben und Pfad
%~nx1 Erweitert %1 auf nur einen Dateinamen und eine Erweiterung
%~dp$PATH:1 Durchsucht die Verzeichnisse, die in der PATH-Umgebungsvariable aufgeführt sind, und erweitert %1 auf den Laufwerkbuchstaben und Pfad des ersten gefundenen Verzeichnisses.
%~ftza1 Erweitert %1, um eine ähnliche Ausgabe wie beim dir-Befehl anzuzeigen.

In den obigen Beispielen können %1 und PATH durch andere gültige Werte ersetzt werden. Die %~-Syntax wird durch eine gültige Argumentnummer beendet. Die %~-Modifizierer können nicht mit %* verwendet werden.

Bemerkungen

  • Verwenden von Batchparametern:

    Batchparameter können alle Informationen enthalten, die Sie an ein Batchprogramm übergeben können, einschließlich Befehlszeilenoptionen, Dateinamen, Batchparameter %0 bis %9 und Variablen (z. B. %baud%).

  • Mit dem <label>-Parameter:

    Wenn Sie den call-Befehl mit dem <label>-Parameter verwenden, erstellen Sie einen neuen Batchdateikontext und übergeben die Steuerung an die Anweisung hinter der angegebenen Bezeichnung. Wenn das Ende der Batchdatei zum ersten Mal erreicht wird (d. h. nach dem Springen zur Bezeichnung), kehrt die Steuerung zur Anweisung hinter der call-Anweisung zurück. Wenn das Ende der Batchdatei das zweite Mal erreicht wird, wird das Batchskript beendet.

  • Verwenden von Pipes (senkrechter Strich) und Umleitungssymbolen:

    Verwenden Sie keine Pipes (|) oder Umleitungssymbole (< oder >) mit call.

  • Ausführen eines rekursiven Aufrufs

    Sie können ein Batchprogramm erstellen, das sich selbst aufruft. Sie müssen jedoch eine Beendigungsbedingung angeben. Andernfalls können die über- und untergeordneten Batchprogramme in eine Endlosschleife geraten.

  • Arbeiten mit Befehlserweiterungen

    Wenn Befehlserweiterungen aktiviert sind, akzeptiert der call-Befehl <label> als Ziel des Aufrufs. Die richtige Syntax lautet call :<label> <arguments>.

Beispiele

Um das Programm „checknew.bat“ aus einem anderen Batchprogramm auszuführen, geben Sie den folgenden Befehl im übergeordneten Batchprogramm ein:

call checknew

Wenn das übergeordnete Batchprogramm zwei Batchparameter akzeptiert und Sie diese Parameter an „checknew.bat“ übergeben möchten, geben Sie den folgenden Befehl im übergeordneten Batchprogramm ein:

call checknew %1 %2