Ist es möglich, in Batchdateien eine zeitgesteuerte Pause einzufügen?

Ist es möglich, in Batchdateien eine zeitgesteuerte Pause einzufügen?

Ist es möglich, in eine DOS-Batchdatei eine zeitgesteuerte Pause einzufügen?

Es sollte wie der Pausenbefehl funktionieren, aber anstatt dass Sie eine beliebige Taste drücken müssen, wird es in X Sekunden von selbst fortgesetzt.

Antwort1

Die hässliche, aber traditionelle Lösung, die ich gesehen habe, wenn Sie keine nicht standardmäßige Software installieren möchten, ist die Verwendung von PING. Zum Beispiel:

@echo off
rem Sleep 5 seconds
ping -n 6 127.0.0.1>NUL

Die 6 ist erforderlich, da die erste Anforderung fast sofort zurückgegeben wird und ungefähr „0“ Sekunden lang zählt. Sie müssen also x + 1 weitere Anforderungen senden, um die gewünschte Verzögerung zu erreichen.

Antwort2

Angenommen, Sie sprechen nicht von DOS-Batchdateien, sondern von Windows-Batchdateien:

> timeout /?

AUSZEIT[/T] Zeitüberschreitung [/NOBREAK]

Beschreibung:

Dieses Dienstprogramm akzeptiert einen Timeout-Parameter, um die angegebene Zeitspanne (in Sekunden) abzuwarten oder bis eine beliebige Taste gedrückt wird. Es akzeptiert auch einen Parameter, um den Tastendruck zu ignorieren.

Parameterliste:

/T        timeout       Specifies the number of seconds to wait.
                        Valid range is -1 to 99999 seconds.

/NOBREAK                Ignore key presses and wait specified time.

/?                      Displays this help message.

KEIN TEEAuszeitEin Wert von −1 bedeutet, dass unbegrenzt auf einen Tastendruck gewartet wird.

Beispiele:

TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1

Antwort3

Wenn Sie „Batch“-Dateien meinen. Es gibt keinen integrierten Befehl; aber das Win2003 Resource Pack enthält ein Programm, das die gleiche Funktion hat. Weitere Informationen hier:http://malektips.com/xp_dos_0002.html

Antwort4

Oder Sie können es folgendermaßen machen:

@echo off
rem Sleep 5 seconds
CALL :TIMEOUT 5
ECHO Do other stuff here

GOTO :END

:TIMEOUT
ping -n %~1 -w 1 127.0.0.1>nul
EXIT /B 0

:END
pause

verwandte Informationen