Befehlszeitüberschreitung in Batch einstellen

Dr. Muhammad Abdullah 15 Februar 2024
  1. den timeout-Befehl im Batch-Skript
  2. Stellen Sie timeout für jeden anderen Befehl oder Prozess ein
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:

Batch-Timeout - Ausgabe 1

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:

Batch Timeout - Output 2

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.