Warten Sie auf einen Befehl zum Beenden der Ausführung in der Windows-Batch-datei

Siddharth Bishnoi 20 März 2023
  1. Verwenden Sie /WAIT, um auf einen Befehl zum Beenden der Ausführung zu warten
  2. Verwenden Sie den Befehl TIMEOUT zur Verzögerung der Ausführung
  3. Verwenden Sie den Befehl PAUSE, um die Ausführung anzuhalten
Warten Sie auf einen Befehl zum Beenden der Ausführung in der Windows-Batch-datei

Es gibt mehrere Befehle und Installationsprozesse in einer Batch-Datei, die normalerweise einige Zeit in Anspruch nehmen. Aber wenn eine Batch-Datei ausgeführt wird, wartet sie nicht auf das Ende eines Befehlsprozesses; Es führt alle Befehle Zeile für Zeile aus.

Es ist wichtig, dass diese Befehle warten, bis sie beendet sind, und dann die nächsten Befehle ausführen. Damit ein Prozess wartet, bis er beendet ist, verwenden wir den Parameter /wait mit dem START-Befehl.

Anstatt einen Befehl zu starten, können wir, wenn es notwendig ist, Verzögerungen für ein bestimmtes Zeitintervall in die Batch-Datei einzufügen, Befehle wie TIMEOUT und PAUSE verwenden, um die Ausführung des nächsten Prozesses für ein kurzes Zeitintervall zu stoppen oder bis eine Taste gedrückt wird.

Dieses Tutorial veranschaulicht verschiedene Möglichkeiten, auf die Beendigung eines Befehls oder eines Programms zu warten, bevor der nächste Befehl ausgeführt wird.

Verwenden Sie /WAIT, um auf einen Befehl zum Beenden der Ausführung zu warten

Wenn wir ein Programm in einer Batch-Datei mit dem Befehl START starten, können wir warten, bis das Programm beendet ist, indem wir /wait zum Befehl START hinzufügen. Auch wenn es mehrere Befehle gibt, kann /wait für jeden Prozess verwendet werden, um ihn zu beenden und zum nächsten zu wechseln.

Außerdem wird der Parameter /B verwendet, um im selben Prozess zu bleiben, ohne ein neues Fenster zu erstellen. Der Befehl START ohne den Parameter /B öffnet das Programm oder den Befehl in einem neuen Fenster.

Warten Sie auf einen Befehl zum Beenden der Ausführung

Zum Beispiel müssen wir warten, bis ein Befehl die Ausführung beendet hat, bevor wir den nächsten ausführen.

@echo off
echo starting first program.
START /B /WAIT cmd /c "C:\Users\Aastha Gas Harda\Desktop\testfile1.bat" > output.txt
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k

auf das Beenden eines Befehls warten

Ausgang:

Ausgabebefehl

Warten Sie, bis die .exe-Datei die Ausführung beendet hat

Ein weiteres Beispiel ist, wo wir eine .exe-Datei ausführen und warten müssen, bis die Ausführung vollständig abgeschlossen ist.

@echo off
echo starting first program.
START /B /WAIT JRuler.exe
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k

warten, bis eine exe fertig ist

Ausgang:

Ausgabebefehl wartet auf Abschluss einer Exe-Datei

Sobald Sie die .exe-Datei schließen, beginnt das zweite Programm mit der Ausführung. cmd /k in der letzten Zeile wird verwendet, um zu verhindern, dass die Eingabeaufforderung nach der Ausführung beendet wird.

Bei mehreren Programmen können Sie bei jedem Befehl mit /WAIT warten, bis die Ausführung beendet ist. Der Befehl START mit dem Parameter /WAIT hat keine Zeitüberschreitung, d. h. es spielt keine Rolle, wie lange der Vorgang bis zum Abschluss dauert; es wird warten, bis der Vorgang abgeschlossen ist.

@echo off
START /WAIT install1.exe
START /WAIT install2.exe

Das /WAIT kann nur mit dem START-Befehl verwendet werden. Wir können eine Zeitverzögerung für andere Befehle einfügen, indem wir die Befehle TIMEOUT und PAUSE verwenden.

Verwenden Sie den Befehl TIMEOUT zur Verzögerung der Ausführung

Der Befehl TIMEOUT dient dazu, die Ausführung eines Befehls um einige Sekunden oder Minuten zu verzögern. Es kann nur in einer Batch-Datei verwendet werden.

Der Bereich für den TIMEOUT-Befehl variiert zwischen -1 und 100000. Wenn die Verzögerung auf -1 eingestellt ist, fungiert sie als Pausenbefehl, um zu warten, bis eine Taste gedrückt wird.

Wie im obigen Befehl können wir das /wait ersetzen, indem wir den TIMEOUT-Befehl mit dem /t-Parameter einfügen. Die Syntax für den Befehl TIMEOUT ist unten angegeben:

TIMEOUT /t <time>

Nehmen wir das obige Beispiel und fügen eine Zeitverzögerung von 30 Sekunden nach der Ausführung des ersten Programms hinzu. Der Code dafür ist unten gezeigt.

@echo off
echo starting first program.
START /B JRuler.exe
TIMEOUT /t 30
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k

testfile timeout command

Ausgang:

Ausgabe-Timeout-Befehl

Nach 30 Sekunden beginnt das zweite Programm mit der Ausführung. Wenn ein Benutzer vor dem Timeout eine Taste drückt, beginnt das zweite Programm mit der Ausführung.

Timeout-Befehl nach Ausführung ausgeben

Um Benutzertastenanschläge zu verhindern, verwenden Sie den Parameter /nobreak mit dem Befehl TIMEOUT. Dadurch werden alle Tastendrücke des Benutzers ignoriert.

Sie können die Verzögerung jedoch stoppen, indem Sie Strg+C drücken, wodurch der Fehlerlevel1 erhöht wird.

Verwenden Sie den Befehl PAUSE, um die Ausführung anzuhalten

Der Befehl PAUSE wird verwendet, um die Ausführung einer Batch-Datei anzuhalten, bis eine Taste gedrückt wird. Es ist nützlich, wenn der Benutzer den Ausgabetext lesen oder warten möchte, bis ein Vorgang abgeschlossen ist.

Es gibt jedoch kein Timeout, und es wird nur fortgesetzt, bis der Benutzer eine Taste drückt.

@echo off
echo starting first program.
START /B cmd /c "C:\Users\Aastha Gas Harda\Desktop\testfile1.bat" > output.txt
echo The first program is executed successfully.
PAUSE
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k

Befehl zum Anhalten der Testdatei

Ausgang:

Befehl Pause ausgeben

Alle oben genannten Methoden funktionieren einwandfrei. Wenn Sie den Befehl START verwenden, wird empfohlen, anstelle von Verzögerungsbefehlen /wait zu verwenden, da der Vorgang länger als angegeben dauern kann.