batch-file
Fügen Sie der Batch-Datei eine Verzögerung hinzu
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.