Eine Windows-Batchdatei ( called.bat
oder called.cmd
) kann auf verschiedene Arten von einer anderen Batchdatei ( caller.bat
oder caller.cmd
) oder einer interaktiven Eingabeaufforderung cmd.exe aufgerufen werden:
- Direktwahl:
called.bat
- Verwenden des Aufrufbefehls:
call called.bat
- mit dem Befehl cmd:
cmd /c called.bat
- mit dem Startbefehl:
start called.bat
Ich bin ziemlich in Schwierigkeiten, ihre beabsichtigte Verwendung anhand ihres Hilfetextes zu unterscheiden: Wann soll welche verwendet werden? zB warum ich den Befehl 'call' anstelle des direkten Anrufs verwenden könnte. Was ist unterschiedlich?
Ich interessiere mich für einen zusammenfassenden Bericht, der alle 4 Möglichkeiten (und andere, falls vorhanden) unter verschiedenen Gesichtspunkten analysiert: empfohlene Anwendungsfälle, für die sie geeignet sind, Prozesslaichen, Ausführungskontext, Umgebung, Verarbeitung von Rückkehrcode.
Hinweis: Ich verwende Windows XP SP3.
quelle
start "" [options] command
Eine Sache , nicht aus den Kommentaren hier klar: Wenn Sie eine Batch - Datei von einem anderen Anruf , indem Sie nur den Namen (Fall # 1 in der ursprünglichen Frage), wird die Ausführung stoppt von der anrufenden Batch - Datei. Zum Beispiel in diesen Zeilen:
Die Zeile 'echo Hello' (und alles, was darauf folgt) wird nicht aufgerufen. Wenn Sie das Schlüsselwort 'call' verwenden, wird die Ausführung nach dem Aufruf fortgesetzt. Also in diesem Fall:
Die Zeile 'echo Hello' wird aufgerufen.
Darüber hinaus werden alle in der Datei named.bat festgelegten Variablen auch an den aufrufenden Prozess zurückgegeben.
Stellen Sie sich eine Datei 'named.bat' mit dieser Zeile vor:
Dann wäre% MYVAR% für die aufrufende Batchdatei verfügbar, wenn Folgendes verwendet würde:
Aber es würde nicht verwenden
quelle