Befehlszeile - Batchdatei, die eine andere Batchdatei aufruft

13

Ich habe eine Batch-Datei, die eine andere Batch-Datei aufruft, die im PATH-Verzeichnis vorhanden ist (im Grunde eine ausführbare Datei mit zusätzlichen Schaltern aufrufen.)

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.

In foo.bat:

foo.exe -t -s %1

bar.bat führt den ersten Befehl aus, wird jedoch sofort beendet (dh es wird nur an der Datei file1.txt gearbeitet ).

Wie kann ich diese Batchdatei so einrichten, dass sie die andere Batchdatei mehrmals aufruft?

Dani
quelle

Antworten:

14

Verwenden Sie das Schlüsselwort CALL:

call foo.bat file1.txt
call foo.bat file2.txt
splattne
quelle
1
<aus der Antwort von Duncan Smart kopiert, um sie zusammenzuhalten.> Verwenden Sie zusätzlich zu @ splattnes Antwort exit / b in der CALLed-Batch-Datei, wenn Sie vorzeitig zurückkehren müssen.
Brad Bruce
1
Sie können auch goto :eoffrüh zurückkehren. exit /bwird normalerweise nur benötigt, wenn Sie den Rückkehrcode benötigen.
Joey
Ich weiß nicht warum, aber ich habe Mühe, dies zum Laufen zu bringen. Ich habe beide exit /bund versucht goto: eof. Ist es in Ordnung, die Ausgabe des CALLed Bat anzufügen? call foo.bat > myfile
SSH Dies
4

Verwenden Sie zusätzlich zur Antwort von @ splattne exit /bdie CALLed-Batch-Datei, wenn Sie vorzeitig zurückkehren müssen.

Duncan Smart
quelle
2

Eine andere Möglichkeit (zur Kompatibilität mit DOS vor Version 3.3 :-)) besteht darin, den Befehl process mit der Option child (/ c) und dem Namen der anderen zu verarbeitenden Batch-Datei aufzurufen. Das führt auch zu einem Anruf anstelle einer Kette und funktioniert sogar auf wirklich alten Maschinen (nur für den Fall, dass jemand darüber läuft und sich darum kümmert). :-)

Brian Knoblauch
quelle
0

@echo aus

echo WbLegalReport.cmd

ich:

cd I: \ CFS \ Batch \ jarDir

echo% CD%

WbLegalReport.cmd

echo% CD%

echo WatchResrAddDeleted.cmd

echo% CD%

WatchRestrAddDeleted.cmd

echo% CD%

Ich versuche hier, diese beiden Batch-Dateien nacheinander aufzurufen.

Kann das nicht.

Hilfe bitte.

Tatsächlich schlägt das untergeordnete Skript fehl, da das Steuerelement nicht zum Hauptskript zurückkehrt


quelle
0

Sanket, rufe die Batch-Datei nicht direkt auf. Verwenden Sie den Befehl "CALL". Siehe splattnes Beispiel.

pepoluan
quelle