Accept user input to a batch file. Choice allows single key-presses to be captured from the keyboard.
CHOICE [/c [choiceKeys]] [/N] [/CS] [/t Timeout /D Choice] [/M Text] key /C[:]choiceKeys One or more keys the user can press. Default is YN. /N Do not display choiceKeys at the end of the prompt string. /CS Make the choiceKeys Case Sensitive. /T Timeout Timeout in Timeout seconds If Timeout is 0 there will be no pause and the default will be selected. /D choice Default choice made on Timeout. /M "text" Message string to describe the choices available.
ERRORLEVEL will return the numerical offset of choiceKeys.
Choice.exe is a standard command in Windows 2003 and greater, it was first made available in the Windows XP resource kit.
If you need to include a quotation mark within the message string, it needs to be escaped by doubling it: "message""withquote"
CHOICE can be used to set a specific %errorlevel%
for example to set the %errorlevel% to 6 :
ECHO 6| CHOICE /C 123456 /N >NUL
CHOICE /C CH /M "Select [C] CD or [H] Hard drive"
IF %ERRORLEVEL% EQU 2 goto sub_hard_drive
IF %ERRORLEVEL% EQU 1 goto sub_cd
“If you limit your choices only to what seems possible or reasonable, you disconnect yourself from what you truly want, and all that is left is compromise” - Robert Fritz
IF - Conditionally perform a command.
CON - Accept console input.
SET /P - Prompt for user input (accepts a whole string instead of one keypress).
TIMEOUT - Delay processing of a batch file/command.
Equivalent PowerShell: MessageBox - Display a message box. / Read-Host - Read a line of input from the console.
Equivalent bash command (Linux): case / select - Accept keyboard input.