Der Befehl: "CALL" ist auf Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. verfügbar
Die Beispiele zum Befehl "CALL"
Der
`CALL`-Befehl in der Windows-Eingabeaufforderung wird verwendet, um die Ausführung eines anderen Batch-Skripts innerhalb eines Batch-Skripts zu starten. Hier sind einige Beispiele mit Kommentaren:
Beispiel 1: Einfacher Aufruf eines anderen Batch-Skripts:
CALL anderes_skript.bat
Beschreibung: Dieser Befehl ruft das Batch-Skript
`anderes_skript.bat` auf. Der
`CALL`-Befehl wird verwendet, um sicherzustellen, dass die Kontrolle an das ursprüngliche Skript zurückkehrt, nachdem das aufgerufene Skript abgeschlossen ist.
Beispiel 2: Übergabe von Parametern an das aufgerufene Skript:
CALL anderes_skript.bat Parameter1 Parameter2
Beschreibung: Hier werden die Parameter
`Parameter1` und
`Parameter2` an das aufgerufene Batch-Skript übergeben. Innerhalb von
`anderes_skript.bat` können diese Parameter mit
`%1`,
`%2`, usw. abgerufen werden.
Beispiel 3: Verwendung von `%*` für alle übergebenen Parameter:
CALL anderes_skript.bat %*
Beschreibung:* `%` repräsentiert alle übergebenen Parameter. Dieser Befehl ruft
`anderes_skript.bat` auf und gibt ihm alle Parameter weiter, die dem ursprünglichen Skript übergeben wurden.
Beispiel 4: Rückgabewert des aufgerufenen Skripts prüfen:
CALL anderes_skript.bat
IF ERRORLEVEL 1 (
ECHO Das aufgerufene Skript hat einen Fehler zurückgegeben.
) ELSE (
ECHO Das aufgerufene Skript wurde erfolgreich ausgeführt.
)
Beschreibung: Hier wird das aufgerufene Batch-Skript
`anderes_skript.bat` ausgeführt. Anschließend wird mit
`ERRORLEVEL` überprüft, ob das Skript einen Fehler zurückgegeben hat.
Beispiel 5: Verwendung von `GOTO` nach dem Aufruf:
CALL anderes_skript.bat
GOTO Fortsetzen
:Fortsetzen
ECHO Das Skript wurde erfolgreich aufgerufen.
Beschreibung: Hier wird das Batch-Skript
`anderes_skript.bat` aufgerufen, und nach dem Aufruf wird die Ausführung zu der Sprungmarke
`Fortsetzen` weitergeleitet.
Der
`CALL`-Befehl ist besonders nützlich, wenn du von einem Batch-Skript aus ein anderes Skript aufrufen möchtest und sicherstellen möchtest, dass die Ausführung zum ursprünglichen Skript zurückkehrt. Dies ist wichtig, um das ursprüngliche Skript nach dem Aufruf des anderen Skripts fortzusetzen.
"CALL" Auszug aus der Microsoft Windows-Hilfe
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
Ruft eine Batchdatei von einer anderen aus auf.
CALL [Laufwerk:][Pfad]Dateiname [Parameter]
Parameter Bezeichnet beliebige Angaben in der Befehlszeile, die von
dem aufgerufenen Batchprogramm benötigt werden.
Wenn die Befehlserweiterungen aktiviert sind, wird der CALL-Befehl
folgendermaßen verändert:
Der CALL-Befehl akzeptiert jetzt Marken als Sprungziele.
Die Syntax ist:
CALL :Marke Argumente
Mit den angegebenen Argumenten wird ein neuer Batchkontext erzeugt und
die Programmausführung hinter der angegebenen Marke fortgesetzt. Um die Batch-
datei dort tatsächlich zu verlassen, muss man sie zweimal beenden. Beim ersten
Erreichen des Endes wird das Programm zu dem Befehl hinter dem CALL-Aufruf
zurückkehren. Beim zweiten Mal wird dann die Batchdatei beendet. Geben Sie
GOTO /? ein, um weitere Informationen über die Erweiterung von GOTO :EOF zu
erhalten, die es Ihnen ermöglicht, eine Batchdatei zu verlassen.
Zusätzlich hat sich die Auflösung von Referenzen auf Argumente in Batchdateien
(%0, %1 etc.) wie folgt geändert:
%* in einer Batchdatei bezieht sich auf alle Argumente (z.B. %1 %2
%3 %4 %5 ...).
Die Ersetzung von Batchparametern (%n) wurde erweitert. Sie können
jetzt folgende Syntax benutzen:
%~1 - Expandiert %1 und entfernt umschließende
Anführungszeichen (").
%~f1 - Expandiert %1 zu einem vollständigen Dateinamen.
%~d1 - Erzeugt nur den Laufwerkbuchstaben von %1.
%~p1 - Erzeugt nur den Pfad von %1.
%~n1 - Erzeugt nur den Dateinamen von %1.
%~x1 - Erzeugt nur die Dateierweiterung von %1.
%~s1 - Der erzeugte Pfad enthält nur kurze Namen.
%~a1 - Expandiert %1 zu Dateiattributen.
%~t1 - Expandiert %1 zu Datum/Zeit der Datei.
%~z1 - Expandiert %1 zur Größe der Datei.
%~$PATH:1 - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse und expandiert die erste
gefundene Datei %1 zu dem vollständigen Dateinamen.
Wenn der Name der Umgebungsvariablen nicht definiert
ist oder diese Datei bei der Suche nicht gefunden
wurde, wird dieser Parameter zu einer leeren
Zeichenkette expandiert.
Diese Parameter können auch miteinander kombiniert werden:
%~dp1 - Erzeugt den Laufwerkbuchstaben und Pfad von %1.
%~nx1 - Erzeugt den Dateinamen und die Dateierweiterung von %1.
%~dp$PATH:1 - Durchsucht die in der PATH-Umgebungsvariablen ange-
gebenen Verzeichnisse nach %1 und erzeugt den Lauf-
werkbuchstaben und Pfad der ersten gefundenen Datei.
%~ftza1 - Erzeugt eine DIR-ähnliche Ausgabezeile von %1.
In den angegebenen Beispielen können %1 und PATH durch andere gültige
Werte ersetzt werden. Die Syntax von %~ wird durch eine gültige Argument-
anzahl beendet. %~ darf nicht mit %* verwendet werden.
Wichtige Informationen, Tipps zum Befehl "CALL"
Ja, es gibt einige wichtige Punkte und Überlegungen, die du beachten solltest, wenn du den
`CALL`-Befehl in der Windows-Eingabeaufforderung verwendest:
1.
Verwendung mit Batch-Skripten: Der
`CALL`-Befehl wird normalerweise verwendet, um ein anderes Batch-Skript innerhalb eines Batch-Skripts aufzurufen. Beachte, dass er bei der Ausführung von anderen Dateitypen möglicherweise nicht erforderlich ist.
2.
Rückgabewert überprüfen: Wenn das aufgerufene Batch-Skript einen Rückgabewert zurückgibt, kannst du dies mit
`ERRORLEVEL` überprüfen. Beachte, dass
`ERRORLEVEL` nur den Rückgabewert des zuletzt ausgeführten Befehls widerspiegelt.
CALL anderes_skript.bat
IF ERRORLEVEL 1 (
ECHO Das aufgerufene Skript hat einen Fehler zurückgegeben.
) ELSE (
ECHO Das aufgerufene Skript wurde erfolgreich ausgeführt.
)
3.
Korrekte Verwendung von Parametern: Beachte die korrekte Verwendung von Parametern, wenn du Parameter an das aufgerufene Batch-Skript übergibst. Die Parameter können im aufgerufenen Skript mit
`%1`,
`%2`, usw. abgerufen werden.
CALL anderes_skript.bat Parameter1 Parameter2
4.
Syntax und Leerzeichen: Achte darauf, dass die Syntax korrekt ist und keine überflüssigen Leerzeichen vorhanden sind. Dies kann zu Fehlern führen.
5.
Sicherheitsüberlegungen: Bei der Verwendung von
`CALL` in Skripten, die Parameter enthalten, ist es wichtig sicherzustellen, dass die übergebenen Parameter ordnungsgemäß validiert und verarbeitet werden, um Sicherheitsrisiken zu minimieren.
6.
Überwachung und Protokollierung: Wenn du Batch-Skripte entwickelst, die andere Skripte aufrufen, ist es oft ratsam, Überwachungs- und Protokollierungsmethoden einzusetzen, um die Ausführung und mögliche Fehler zu überwachen.
7.
Vermeiden von Endlosschleifen: Achte darauf, dass du nicht versehentlich Endlosschleifen erstellst, indem du Batch-Skripte in einer Schleife aufrufst. Dies könnte dazu führen, dass Skripte sich immer wieder selbst aufrufen.
8.
Versionsspezifische Unterschiede: Beachte, dass die Funktionalität des
`CALL`-Befehls je nach Windows-Version variieren kann. Es ist ratsam, die Dokumentation deiner spezifischen Windows-Version zu konsultieren.
Berücksichtige diese Überlegungen, um sicherzustellen, dass die Verwendung von
`CALL` in deinen Batch-Skripten ordnungsgemäß und sicher erfolgt.