
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