Folgendes habe ich beim parallelen Ausführen von Batch-Dateien gefunden (mehrere Instanzen derselben Bat-Datei gleichzeitig mit unterschiedlichen Eingabeparametern):
Nehmen wir an, Sie haben eine exe-Datei, die eine lange Aufgabe namens LongRunningTask.exe ausführt
Wenn Sie die exe direkt aus der bat-Datei aufrufen, ist nur der erste Aufruf der LongRunningTask erfolgreich, während der Rest den Betriebssystemfehler "Datei wird bereits vom Prozess verwendet" erhält.
Wenn Sie diesen Befehl verwenden:
start / B / WAIT "" LongRunningTask.exe "" Parameter "
Sie können mehrere Instanzen von bat und exe ausführen, während Sie noch auf den Abschluss der Aufgabe warten, bevor der bat die verbleibenden Befehle weiter ausführt. Mit der Option / B soll vermieden werden, dass ein weiteres Fenster erstellt wird. Die leeren Anführungszeichen werden benötigt, damit der Befehl funktioniert (siehe Referenz unten).
Beachten Sie, dass, wenn Sie / WAIT zu Beginn nicht verwenden, die LongRunningTask gleichzeitig mit den verbleibenden Befehlen in der Batchdatei ausgeführt wird. Daher kann es zu Problemen kommen, wenn einer dieser Befehle die Ausgabe der LongRunningTask erfordert
Wiederaufnahme:
Das kann nicht parallel laufen:
- Rufen Sie LongRunningTask.exe auf
Dies läuft parallel und ist in Ordnung, sofern keine Datenabhängigkeiten zwischen der Ausgabe des Befehls und dem Rest der bat-Datei bestehen:
- start / B "" "LongRunningTask.exe" "Parameter"
Dies wird parallel ausgeführt und wartet, bis die Aufgabe abgeschlossen ist, sodass Sie die Ausgabe verwenden können:
- start / B / WAIT "" LongRunningTask.exe "" Parameter "
Referenz für den Startbefehl: Wie kann ich ein Programm aus einer Batchdatei ausführen, ohne die Konsole nach dem Programmstart geöffnet zu lassen?