Ich möchte zwei Programme aus der Batch-Datei (auch Batch-Dateien) starten - sie werden einige Sekunden ausführen. Dann in der Haupt-Batch-Datei möchte ich warten, während beide fertig sind und dann Hauptausführung fortsetzen. Ist das überhaupt möglich?Können Sie in der Windows-Stapeldatei verzweigen?
Antwort
können Sie, eine Art:
@echo off
set Token=MAIN_%RANDOM%_%CD%
start "%Token%_1" cmd /c child1.cmd
start "%Token%_2" cmd /c child2.cmd
:loop
ping -n 2 localhost >nul 2>nul
tasklist /fi "WINDOWTITLE eq %Token%_1" | findstr "cmd" >nul 2>nul && set Child1=1 || set Child1=
tasklist /fi "WINDOWTITLE eq %Token%_2" | findstr "cmd" >nul 2>nul && set Child2=1 || set Child2=
if not defined Child1 if not defined Child2 goto endloop
goto loop
:endloop
echo Both children died.
child1
und child2
wurden Ausführung nur pause
. Dies verwendet ein mehr oder weniger eindeutiges Token, um die untergeordneten Batch-Dateien zu identifizieren. Sie werden in einem eigenen Fenster mit start
gestartet und jeder erhält einen bestimmten Fenstertitel. Mit diesem Fenstertitel können wir sie wieder unter Verwendung tasklist
finden und feststellen, ob sie noch laufen.
Es wird ein wenig schwierig herauszufinden, ob die Batch-Dateien noch laufen. tasklist
mit dem Fenster Titelfilter tut, was es tun soll, aber es wird keinen vernünftigen Fehlerlevel zurückgeben. Aus diesem Grund müssen wir durch findstr
leiten, um den Prozessnamen zu übernehmen (um sprachsensitiv zu bleiben, indem die Fehlermeldung übernommen wird).
Das funktioniert! Weißt du, ob es weiterhin als geplante Aufgabe funktioniert? – Helvio
- 1. Verzweigen Sie manuell, wenn Bitbucket fehlschlägt
- 2. Git Merging verzweigen Meister
- 3. Wie verzweigen und verschmelzen Sie mit TortoiseSVN?
- 4. Kopieren Sie die SVN: Ignorieren Sie Dateien beim Verzweigen
- 5. Wie verzweigen und mischen Sie Operationen in VSS?
- 6. Wie verzweigen Sie das gesamte Repository einschließlich Ignorieren von Dateien
- 7. Der beste Weg, Flex-Projekte mit Subversion zu verzweigen
- 8. Verzweigen und Zusammenführen von SSIS/SSAS-Projekten
- 9. Wie verzweigen und behalten Sie die Zweighistorie mit TFS 2013
- 10. Verzweigen bestimmter Projekte von einer Multiprojektlösung
- 11. Vorteil der Verwendung von Backtracking und verzweigen und binden
- 12. Aktionen sammeln und bei Bedarf früh verzweigen
- 13. Maven Surefire: Kann parallele Testausführung nicht verzweigen
- 14. Forgot in git verzweigen, muss Änderungen von Master
- 15. Github: wie nach dem Klonen zu verzweigen?
- 16. Kann ich außerhalb der Prozedur (PROC/ENDP) in der ARM-Assembly verzweigen?
- 17. Was bedeutet es, auf GitHub zu verzweigen?
- 18. Wie kann man am besten in Clearcase verzweigen?
- 19. Zusammenführen und Verzweigen von freigegebenem Code zwischen Projekten in TFS
- 20. So verzweigen Sie ein Menü, das sich in einem komplexen Raster befindet UI
- 21. Effizientere Vorgehensweise if/else Verzweigen mit Variablenzuweisung in Java
- 22. Ein Subversion-Repository in ein verteiltes CMS verzweigen
- 23. Können Sie ein Lambda in der Initialisierungsliste einer Klasse verwenden?
- 24. Können Sie Zählungen in der sklearn logistischen Regressionseingabe verwenden?
- 25. Wie können Sie die ID in der URL zufällig machen?
- 26. Können Sie eine Funktion bei der Initialisierung in c ausführen?
- 27. Können Sie diesen Fehler in der integrierten MATLAB-Funktion erklären?
- 28. Wie können Sie einige Menüs in der Aktionsleiste ausblenden?
- 29. Können Sie Umgebungsvariablen in der Konfigurationsdatei für fluentd
- 30. Wie können Sie soziale Login-Optionen in der Website hinzufügen?
http://StackOverflow.com/Questions/2572176/How-to-make-the-batch-file-wait-until-another-batch-file-completes-execution –
@DmitriyBotov: Das ist für * eine * Charge Datei nur, obwohl. Sie möchten zwei gleichzeitig ausführen und nur dann weiter ausführen, wenn * beide * gestoppt haben. – Joey