Warten Sie auf einen Befehl zum Beenden der Ausführung in der Windows-Batch-datei
-
Verwenden Sie
/WAIT
, um auf einen Befehl zum Beenden der Ausführung zu warten -
Verwenden Sie den Befehl
TIMEOUT
zur Verzögerung der Ausführung -
Verwenden Sie den Befehl
PAUSE
, um die Ausführung anzuhalten
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
Ausgang:
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
Ausgang:
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
Ausgang:
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.
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
Ausgang:
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.