In una finestra di cmd, voglio chiedere all'utente un insieme di scelte (indicate da lettere), una delle quali è l'impostazione predefinita.
L'utente può digitare una lettera o premere Enter, nel qual caso verrà selezionata la scelta predefinita.
Voglio anche specificare un timeout, quindi la scelta predefinita viene selezionata automaticamente dopo un determinato numero di secondi di inattività.
Il built-in choice il comando si avvicina:
> choice /C YN /T 5 /D Y /M "The message"
Ciò richiede solo scelte valide ( /C YN ) e auto-default su 'Y' ( /D Y ) dopo 5 secondi ( /T 5 )
... ma stranamente non permette di colpire Enter per la scelta predefinita.
L'altra opzione più prolissa che ho trovato consente di premere Invio per la scelta predefinita:
:ch
set sel=Y
REM Hitting Enter does not modify 'sel'
set /p sel=The message, [Y/N]?
if %sel% == Y goto Yes
if %sel% == N goto No
echo Invalid choice '%sel%', try again.
goto ch
... ma non so come fare questo selezionare automaticamente il valore predefinito dopo un po '.