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 '.