Suche…


Einführung

In diesem Thema lernen Sie eines der vielen nützlichen Dinge, die Sie in der Skriptsprache Batch-Datei kennen sollten. Hinzufügen einer Verzögerung / Pause / Zeitüberschreitung zu Ihrer Batchdatei.

Auszeit


Auszeit

Der einfachste Weg, um eine bestimmte Zeitspanne zu verzögern oder zu pausieren, ist der Standardbefehl TIMEOUT . Um ein Timeout zu machen, das genau eine Minute dauert, geben wir Folgendes ein:

timeout /t 60

Was ist jetzt hier los?

Zuerst verwenden wir den Befehl TIMEOUT mit dem Parameter /T (was einfach Timeout bedeutet), und geben die Anzahl Sekunden an, die gewartet werden soll. In diesem Fall ... 60 Sekunden.

Timeout mit dem Parameter / NOBREAK

Wenn wir das Beispiel von vorhin verwenden und das in einer BATCH-Datei ausführen: timeout /t 60 dann diese 60 Sekunden warten, können Sie das Timeout tatsächlich durch Drücken einer beliebigen Taste Ihrer Tastatur unterbrechen. Um dies zu verhindern, fügen wir einfach den Parameter /NOBREAK am Ende hinzu.

timeout /t 60 /nobreak

Auf diese Weise wird für 60 Sekunden eine Zeitüberschreitung ausgeführt. Wenn Sie die Zeitüberschreitung unterbrechen möchten, müssen Sie (STRG-C) auf Ihrer Tastatur drücken.

Stilles Timeout

Wenn ein Timeout ausgeführt wird, wird Folgendes angezeigt:

Waiting for X seconds, press a key to continue ...
or 
Waiting for X seconds, press CTRL+C to quit ... [This is with the /NOBREAK parameter]

Um die Nachricht auszublenden, verwenden Sie das NUL Argument (Zur Erklärung von NUL : Klicken Sie hier )

timeout /t 60 > nul
or
timeout /t 60 /nobreak > nul

Pause

Um Ihr Skript PAUSE , verwenden Sie einfach den PAUSE Befehl.

PAUSE

Der Text wird angezeigt. Press any key to continue . . . und fügen Sie dann bei der Benutzereingabe einen Zeilenumbruch hinzu.

Angenommen, wir möchten ein "Hello World" -Programm erstellen und nachdem wir etwas auf unserer Tastatur angeklickt haben, möchten wir, dass das Programm mit dem Befehl EXIT .

echo Hello World
pause
exit

Hier verwendet es den ECHO Befehl, um "Hello World" zu sagen. Dann verwenden wir den PAUSE Befehl, der anzeigt. PAUSE eine Press any key to continue . . . und dann verwenden wir den Befehl EXIT um das aktuelle BATCH-Skript zu beenden.

Wenn es pausiert, wird Folgendes angezeigt:

Press any key to continue . . .

Blenden Sie die Aufforderung "Drücken Sie eine beliebige Taste aus, um fortzufahren ..."

Um die Nachricht auszublenden, leiten wir die Ausgabe an ein spezielles Gerät namens nul . Das ist eigentlich kein echtes Gerät, aber was wir schicken, wird weggeworfen.

pause > nul

Klingeln


Klingeln

Einer der am häufigsten verwendeten Befehle zum Verzögern um eine bestimmte Zeit ist ping .

Grundlegende Verwendung

PING -n 1 -w 1000 1.1.1.1

REM the -n 1 flag means to send 1 ping request.
REM the -w 1000 means when the IP(1.1.1.1) does not respond, go to the next command
REM 1.1.1.1 is an non-existing IP so the -w flag can ping a delay and go to next command

Dies würde folgendes auf Ihrer Batchdatei / Konsole ausgeben:

C:\Foo\Bar\Baz>ping -n -w 1000 1.1.1.1

Pinging 1.1.1.1 (Using 32 bytes of data)
Request timed out

Ping statistics for 1.1.1.1
    Packets: Sent = 2,Received = 0, Lost = 1(100% loss)

Blenden Sie den Text aus

>nul einfach >nul am Ende des Befehls hinzu, um ihn auf null umzuleiten.

ping -n w 1000 1.1.1.1 >nul

Dies würde nichts ausgeben.

Schlafen


Schlafen

Bei älteren Windows-Systemen ist kein timeout verfügbar. Wir können jedoch den sleep Befehl verwenden.

Verwendungszweck

sleep 1

Sehr selbsterklärend; 1 Sekunde lang schlafen. sleep ist jedoch ein deperacted Befehl und sollte durch Timeout ersetzt werden.

Verfügbarkeit

Dieser Befehl ist auf alten Windows-Systemen verfügbar. Auch SLEEP.exe ist im 2003 Resource Kit enthalten.

sleep.exe die ausführbare Datei im Ordner %Windir%\System32 , um sleep.exe zu verwenden. Dann können Sie es als normalen Befehl verwenden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow