Befehlszeitüberschreitung in Batch einstellen
In diesem Artikel wird zunächst das Konzept des Befehls timeout
im Batch-Skript erläutert. Danach besprechen wir die Einstellung des timeout
-Befehls für jeden anderen Befehl.
den timeout
-Befehl im Batch-Skript
timeout
ist ein Dienstprogramm zum Anhalten oder Verzögern für einen bestimmten Zeitraum. Dieser Befehl macht eine bestimmte Pause und erzeugt eine Pause auf der Befehlszeilenschnittstelle.
Die Syntax des timeout
-Befehls ist wie folgt:
timeout /t <time in seconds> [/nobreak]
Der Befehl timeout
mit /t
wird verwendet, um eine Verzögerung zu erstellen, gefolgt von <Zeit in Sekunden>
, einer Ganzzahl von -1 bis 100000, die die Zeit in Sekunden für die Erstellung der Verzögerung darstellt, und einer optionalen Parameter /nobreak
.
Wenn wir -1
mit dem Befehl timeout
verwenden, wird eine unbestimmte Verzögerung erzeugt, bis eine Taste gedrückt wird.
Betrachten Sie den folgenden timeout
-Befehl:
timeout /t 5
Der Befehl timeout /t 5
verzögert 5 Sekunden oder bis keine Taste gedrückt wird. Die Ausgabe des Befehls sieht wie folgt aus:
Der optionale Parameter /nobreak
wird verwendet, um jeden Tastendruck während der durch den timeout
-Befehl erzeugten Verzögerung zu ignorieren. Betrachten Sie beispielsweise den folgenden Befehl:
timeout /t 5 /nobreak
Die Ausgabe des folgenden Befehls lautet wie folgt:
Wir können auch die Befehlsnachricht timeout
ausblenden. Mit dem Befehl timeout /t 5 > nul
wird die Meldung des Befehls timeout
ausgeblendet, indem die Ausgabemeldung auf nul
umgeleitet wird.
Stellen Sie timeout
für jeden anderen Befehl oder Prozess ein
Wir können eine Zeitüberschreitung für jeden anderen benutzerdefinierten Befehl oder Prozess verzögern. Betrachten Sie das folgende Batch-Skript:
@echo off
start notepad.exe
timeout /t 4
taskkill /f /im notepad.exe > nul && (
echo Task is killed.
exit /b 31744
) || (
echo No Command or Task to kill. The task is terminated in time.
)
Im obigen Batch-Skript verwenden wir den Befehl @echo off
, um die ausgeführten Befehle an der Eingabeaufforderung auszublenden. Der Befehl start notepad.exe
wird verwendet, um einen Prozess zu starten und das Notepad-Editorfenster zu starten.
Der Befehl timeout /t 4
verzögert 4 Sekunden, gefolgt von einem taskkill
-Befehl, der den notepad.exe
-Prozess beendet, falls dies noch nicht geschehen ist.
Außerdem zeigt dieses Skript die Task is killed
. auf dem Terminal, wenn der Befehl taskkill
den Prozess notepad.exe
beendet.
Wenn die notepad.exe
bereits während der timeout
-Verzögerung beendet wird, wird der taskkill
-Befehl die notepad.exe
nicht beenden und die Fehlermeldung zusammen mit der folgenden Ausgabe anzeigen:
No Command or Task to kill. The task is terminated in time.