Home XP Commands
XP Syntax

CHOICE.exe (Resource Kit)

Accept user input to a batch file.

Choice allows single key-presses to be captured from the keyboard.

Syntax
    CHOICE [/C[:]choiceKeys] [/N] [/S] [/T[:]k,nn] [text]

Key
   /C[:]choiceKeys : One or more keys the user can press. Default is YN
   /N              : Do not display choiceKeys at end of prompt string.
   /S              : case Sensitive.
   /T[:]k,dd       : Default the choice to k after dd seconds
   text            : Message string to display the choices available

The Windows 2003 version has some slight differences:

    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 end of prompt string.
   /CS             : Case Sensitive.
   /T dd           : Timeout in dd seconds
   /d choiceKey    : Choice made on Timeout
   /m text         : Message string to describe the choices available

ERRORLEVEL will return the numerical offset of choiceKeys.

Availability
Choice.com was originally supplied on the Windows 95 install CD, however there are some issues with this version under NT - multiple concurrent invocations of CHOICE will clobber each other. CHOICE.com will also burn a lot of CPU's when in a wait state.
The NT and 2000 Resource Kits contain CHOICE.EXE which behaves a lot better.
In Windows 2003 CHOICE became a built-in command so it is no longer in the resource kit.

Examples:

CHOICE /C:FH /N select [F] Floppy or [H] Hard drive
IF errorlevel 2 goto s_hard
IF errorlevel 1 goto s_floppy

Note the order of the IF statements above, IF errorlevel 1 will return TRUE for an errorlevel of 2

CHOICE can be used to set a specific %errorlevel%
for example to set the %errorlevel% to 6 :
ECHO 6| CHOICE /C:123456 /N >NUL

I saw a woman wearing a sweatshirt with "Guess" on it. I said, "Thyroid problem?" - Arnold Schwarzenegger

Related Commands:

IF - Conditionally perform a command

Equivalent Linux BASH commands:

case - Conditionally perform a command
select - Accept keyboard input



Back to the Top

Simon Sheppard
SS64.com