Versuchen Sie die Auswahl Befehl. Diesen Befehl gibt es seit MSDOS 6.0, und er sollte den Zweck erfüllen.
Verwenden Sie den Parameter /T, um die Zeitüberschreitung in Sekunden anzugeben, und den Parameter /D, um die Standardauswahl anzugeben und die dann gewählte Auswahl zu ignorieren.
Ein Problem könnte entstehen, wenn der Benutzer eines der Auswahlzeichen eingibt, bevor die Timeout-Zeit abgelaufen ist. Eine teilweise Umgehung besteht darin, die Situation zu verschleiern - verwenden Sie das Argument /N, um die Liste der gültigen Auswahlmöglichkeiten auszublenden und nur 1 Zeichen in der Auswahlmenge zu haben, damit es weniger wahrscheinlich ist, dass der Benutzer eine gültige Auswahl vor Ablauf der Zeitüberschreitung eingibt.
Nachfolgend finden Sie den Hilfetext zu Windows Vista. Ich glaube, es ist dasselbe unter XP, aber sehen Sie sich den Hilfetext auf einem XP-Computer an, um das zu überprüfen.
C:\>CHOICE /?
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
Description:
This tool allows users to select one item from a list
of choices and returns the index of the selected choice.
Parameter List:
/C choices Specifies the list of choices to be created.
Default list is "YN".
/N Hides the list of choices in the prompt.
The message before the prompt is displayed
and the choices are still enabled.
/CS Enables case-sensitive choices to be selected.
By default, the utility is case-insensitive.
/T timeout The number of seconds to pause before a default
choice is made. Acceptable values are from 0 to
9999. If 0 is specified, there will be no pause
and the default choice is selected.
/D choice Specifies the default choice after nnnn seconds.
Character must be in the set of choices specified
by /C option and must also specify nnnn with /T.
/M text Specifies the message to be displayed before
the prompt. If not specified, the utility
displays only a prompt.
/? Displays this help message.
NOTE:
The ERRORLEVEL environment variable is set to the index of the
key that was selected from the set of choices. The first choice
listed returns a value of 1, the second a value of 2, and so on.
If the user presses a key that is not a valid choice, the tool
sounds a warning beep. If tool detects an error condition,
it returns an ERRORLEVEL value of 255. If the user presses
CTRL+BREAK or CTRL+C, the tool returns an ERRORLEVEL value
of 0. When you use ERRORLEVEL parameters in a batch program, list
them in decreasing order.
Examples:
CHOICE /?
CHOICE /C YNC /M "Press Y for Yes, N for No or C for Cancel."
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "Select a for option 1 and b for option 2."
CHOICE /C ab /N /M "Select a for option 1 and b for option 2."
27 Stimmen
Kurze Antwort für alle, die hier landen: Seit Windows Vista gibt es eine native Lösung:
TIMEOUT
. Verweise: SS64 , Rob van der Woude .3 Stimmen
Es gibt Timeout Befehl, der sekundenlang wartet. Falls ein Millisekunden-Schlaf benötigt wird, kann der Powershell-Befehl Start-Schlaf verwendet werden können. Um 50ms in cmd zu schlafen:
powershell Start-Sleep -m 50
0 Stimmen
@Pavel: Man kann auch einen Ping an einen nicht existierenden Host missbrauchen, um für Millisekunden zu schlafen.
0 Stimmen
Eine gute Zusammenfassung der verschiedenen Techniken zum Anhalten eines Batch-Datei-Prozesses: robvanderwoude.com/warten.php
12 Stimmen
Versuchen Sie dies:
timeout /t 5 /nobreak >nul
0 Stimmen
Nur zum Spaß, wenn Sie Node.js installiert haben, können Sie
node -e 'setTimeout(a => a, 5000)'
es funktioniert auf einem Mac mit Node v12.14.0 und wahrscheinlich auch unter Windows0 Stimmen
Eine weitere Möglichkeit:
powershell "Sleep 3"