Home NT Commands
NT 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[:]c,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, hovever there are some problems running 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.
Choice.exe is part of the standard command set in Windows 2003.

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



Simon Sheppard
SS64.com