------------------------ MS-DOS v6.22 Help: Choice -------------------------
<Notes> <Examples>                                               <Index>
----------------------------------------------------------------------------

                                   CHOICE

Prompts the user to make a choice in a batch program. Displays a specified
prompt and pauses for the user to choose from among a specified set of keys.
You can use this command only in batch programs.

For more information on the ERRORLEVEL parameter, see <CHOICE--Note> and the
<IF> command.

Syntax

    CHOICE [/C[:]keys] [/N] [/S] [/T[:]c,nn] [text]

Parameters

text
    Specifies text you want to be displayed before the prompt. Quotation
    marks are necessary only if you include a switch character (/) as part
    of the text before the prompt. If you don't specify text, CHOICE
    displays only a prompt.

Switches

/C[:]keys
    Specifies allowable keys in the prompt. When displayed, the keys will be
    separated by commas, will appear in brackets ([]), and will be followed
    by a question mark. If you don't specify the /C switch, CHOICE uses YN
    as the default. The colon (:) is optional.

/N
    Causes CHOICE not to display the prompt. The text before the prompt is
    still displayed, however. If you specify the /N switch, the specified
    keys are still valid.

/S
    Causes CHOICE to be case sensitive. If the /S switch is not specified,
    CHOICE will accept either upper or lower case for any of the keys that
    the user specifies.

/T[:]c,nn
    Causes CHOICE to pause for a specified number of seconds before
    defaulting to a specified key. The values for the /T switch are as
    follows:

    c
        Specifies the character to default to after nn seconds. The
        character must be in the set of choices specified in the /C switch.

    nn
        Specifies the number of seconds to pause. Acceptable values are from
        0 to 99. If 0 is specified, there will be no pause before
        defaulting.

                                      ***

<Syntax> <Examples>
----------------------------------------------------------------------------

                                CHOICE--Note

ERRORLEVEL parameters

The first key you assign returns a value of 1, the second a value of 2, the
third a value of 3, and so on. If the user presses a key that is not among
the keys you assigned, CHOICE sounds a warning beep (that is, it sends a
BEL, or 07h, character to the console).

If CHOICE detects an error condition, it returns an ERRORLEVEL value of 255.
If the user presses CTRL+BREAK or CTRL+C, CHOICE returns an ERRORLEVEL value
of 0.

When you use ERRORLEVEL parameters in a batch program, list them in
decreasing order.

                                      ***

<Syntax> <Notes>
----------------------------------------------------------------------------

                              CHOICE--Examples

What the user sees when you use CHOICE in a batch file

If you use the following syntax in a batch file,

    choice /c:ync

the user sees the following when CHOICE is started:

    [Y,N,C]?

If you add text to the syntax,

    choice /c:ync Yes, No, or Continue

the user sees the following when CHOICE is started:

    Yes, No, or Continue [Y,N,C]?

What the user sees if you leave out a prompt

If, as in the following example, you use the /N switch to leave out the
prompt in a batch program,

    choice /n Yes, No, or Continue?

the user sees only the text you specified when CHOICE is started:

    Yes, No, or Continue?

What the user sees if you use the T switch

If you use the following syntax in a batch program,

    choice /c:ync /t:n,5

the user sees the following when CHOICE is started:

    [Y,N,C]?

If, after 5 seconds, the user hasn't pressed a key, CHOICE chooses N and
returns an ERRORLEVEL value of 2. If the user presses a key before 5
seconds, CHOICE returns the value corresponding to the user's choice.

To have the option of defragmenting drive C when you start your computer,
you could add the following lines to your AUTOEXEC.BAT file:

    choice Defrag drive /ty,5
    if errorlevel 2 goto SkipDefrag
    defrag c:
    :SkipDefrag

If you press N within 5 seconds, DEFRAG will not run and CHOICE returns an
ERRORLEVEL value of 2. If you do not press N within 5 seconds, or if you
choose Y, DEFRAG is run on drive C.

Using CHOICE in a batch program

The following batch program demonstrates using the CHOICE option to select
one of three programs: MS-DOS Editor, Microsoft Anti-Virus, or Microsoft
Backup.

Notice that the IF ERRORLEVEL statements are listed in decreasing order.
MS-DOS will consider the IF statement true if the ERRORLEVEL parameter
returned by CHOICE is greater than or equal to the parameter specified in
the IF command.

    @echo off
    cls
    echo.
    echo A   Microsoft Editor
    echo B   Microsoft Anti-Virus
    echo C   Microsoft Backup
    echo.
    choice /c:abc Choose an option
    if errorlevel 3 goto MSBackup
    if errorlevel 2 goto Msav
    if errorlevel 1 goto Edit

    :Edit
    edit
    goto End

    :Msav
    msav
    goto End

    :Msbackup
    msbackup
    goto End

    :End

                                      ***

----------------------------------------------------------------------------
<Top of page>
Last update: December 07, 2002 14:45 by
Content © 1997 Microsoft Corporation
All else © 2000-2005
Counter