choice (command)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

choice
Developer(s)Microsoft, Novell, Jim Hall, ReactOS Contributors
Initial release1993, 25–26 years ago
Operating systemDOS, Microsoft Windows, ReactOS
TypeCommand

In computing, choice is a command that allows for batch files to prompt the user to select one item from a set of single-character choices.[1]

History[edit]

The command was introduced as an external command (with filenames CHOICE.COM or CHOICE.EXE) with MS-DOS 6.0,[2] Novell DOS 7 and PC DOS 7.0, and is also available from the command-line shell of some versions of Microsoft Windows, but not under Windows 2000 and Windows XP.[3] It has been reintroduced in Windows Server 2003 and is present in later versions.[4]

Starting with Windows 2000, the SET command has similar functionality using the /P command-line argument. However this command requires an additional key stroke (hitting ENTER key), which is not required by choice.

The choice command has been ported to OS/2, Rexx and Perl.[5] It is also available in FreeDOS,[6] PTS-DOS,[7] and ReactOS. The FreeDOS version was developed by Jim Hall.[8]

Usage[edit]

The command returns the selected choice as an exit code which is set to the index of the key that the user selects from the list of choices. The first choice in the list returns a value of 1, the second a value of 2, and so forth. If a key is pressed that is not a valid choice, the command will sound a warning beep. If an error condition is detected, an exit code value of 255 will be returned. An exit code value of 0 will be returned if the user presses CTRL+BREAK or CTRL+C. Choice displays the default choices Y and N if used without parameters.[9]

Syntax[edit]

DOS[edit]

CHOICE [/C[:]choices] [/N] [/CS] [/T[:]c,nn] [/M text]

Arguments:

  • /C[:]choices Specifies allowable keys. The default is "YN".
  • /T[:]c,nn This defaults choice to "c" after "nn" seconds.
  • /M text Specifies the prompt string to display.

Flags:

  • /N Specifies not to display the choices and "?" at end of prompt string.
  • /CS Specifies that choice keys should be treated as case sensitive.

Microsoft Windows, ReactOS[edit]

CHOICE [/C [<Choice1><Choice2><…>]] [/N] [/CS] [/T <Timeout> /D <Choice>] [/M <"Text">]

Arguments:

  • /C[:]choices Specifies allowable keys. The default is "YN".
  • /T[:]nn This defaults choice to /D after "nn" seconds. Must be specified with default /D.
  • /D[:]c This defaults choice to 'c'.
  • /M text Specifies the prompt string to display.

Flags:

  • /N Specifies not to display the choices and "?" at end of prompt string.
  • /CS Specifies that choice keys should be treated as case sensitive.

Example[edit]

The batch file below gives the user three choices.[10] The user is directed depending upon his input by evaluating the exit code using the IF ERRORLEVEL command (which tests on "greater or equal"). The selected choice is then printed to the screen using the ECHO command.

@ECHO off
@CHOICE /C:123
IF ERRORLEVEL 3 GOTO three
IF ERRORLEVEL 2 GOTO two
IF ERRORLEVEL 1 GOTO one
GOTO end
:one
ECHO You have pressed "1"!
GOTO end
:two
ECHO You have pressed "2"!
GOTO end
:three
ECHO You have pressed "3"!
:end
@PAUSE
Note that the example uses the DOS syntax. This example requires slight adjustments before it applies directly to Windows versions of the CHOICE command.
Note that the IF command, when checking the ERRORLEVEL, compares the number and matches if ERRORLEVEL is equal to or higher than that number. Because of this IF ERRORLEVEL comparisons should be done in decrementing order.

See also[edit]

References[edit]

  1. ^ Jamsa, Kris A. (1993), DOS: The Complete Reference, Osborne McGraw-Hill, p. 206, ISBN 0078819040.
  2. ^ http://www.computerhope.com/choicehl.htm
  3. ^ Microsoft Windows XP Command-line reference A-Z
  4. ^ http://www.techrepublic.com/blog/windows-and-office/make-the-choice-command-work-for-you-even-in-windows-7
  5. ^ http://www.robvanderwoude.com/choice.php
  6. ^ http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/group-base.html
  7. ^ "PTS-DOS 2000 Pro User Manual" (PDF). Buggingen, Germany: Paragon Technology GmbH. 1999. Archived (PDF) from the original on 2018-05-12. Retrieved 2018-05-12.
  8. ^ http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/choice.html
  9. ^ Microsoft TechNet Choice article
  10. ^ http://www.computerhope.com/batch.htm

External links[edit]