Tuesday, September 30, 2008

Batch File Programming Part-6

The CHOICE Command:
Before we learn how to make use of the CHOICE command, we need to what error levels really are. Now Error levels are generated by programs to inform about the way they finished or were forced to finish their execution. For example, when we end a program by pressing CTRL+C to end a program, the error level code evaluates to 3 and if the program closes normally, then the error level evaluates to 0. These numbers all by themselves are not useful but when used with the IF ERROR LEVEL and the CHIOCE command, they become very kewl.

The CHOICE command takes a letter or key from the keyboard and returns the error level evaluated when the key is pressed. The general syntax of the CHOICE command is:

CHOICE[string][/C:keys][/S][/N][/T:key,secs]

The string part is nothing but the string to be displayed when the CHOICE command is run.

The /C:keys defines the possible keys to be pressed. If options are mentioned then the default Y/N keys are used instead.

For example, The command,
CHOICE /C:A1T0

Defines A, 1, T and O as the possible keys. During execution if the user presses a undefined key, he will hear a beep sound and the program will continue as coded.

The /S flag makes the possible keys defined by the CHOICE /c flag case sensitive. So it means that if the /S flag is present then A and a would be different.

The /N flag, if present shows the possible keys in brackets when the program is executed. If the /N flag is missing then, the possible keys are not shown in brackets. Only the value contained by STRING is shown.

/T:key,secs defines the key which is taken as the default after a certain amount of time has passed.

For Example:
CHOICE Choose Browser /C:NI /T:I.5

The above command displays Choose Browser[N,I] and if no key is pressed for the next 5 seconds, then it chooses I.Now to truly combine the CHOICE command with the IF ERROR LEVEL command, you need to know what the CHOICE command returns.The CHOICE command is designed to return an error level according to the pressed key and its position in the /C flag.
To understand this better, consider the following example,

CHOICE /C:AN12

Now remember that the error level code value depends on the key pressed. This means that if the key A is pressed, then the error level is 1, if the key N is pressed then the error level is 2, if 1 is pressed then error level is 3 and if 2 is pressed then error level is 4.

Now let us see how the IF ERROR LEVEL command works. The general syntax of this command is:

IF [NOT] ERRORLEVEL number command.

This statement evaluates the current error level number. If the condition is true then the command is executed.
For Example:
IF ERRORLEVEL 3 ECHO Yes

The above statement prints Yes on the screen if the current error level is 3.

The important thing to note in this statement is that the evaluation of an error level is true when the error level us equal or higher than the number compared.

For Example: in the following statement,

IF ERRORLEVEL 2 ECHO YES
The condition is true if the error level is > or = 2.

Now that you know how to use the CHOICE and ERROR LEVEL IF command together, you can now easily create menu based programs. The following is an example of such a batch file which asks the User what browser to launch.

@ECHO OFF
ECHO.
ECHO.
ECHO Welcome to Browser Selection Program
ECHO.
ECHO 1. Internet Explorer 5.5
ECHO 2. Mozilla 5
ECHO x. Exit Browser Selection Program
ECHO.
CHOICE "Choose Browser" /C:12x /N
IF ERRORLEVEL 3 GOTO END
IF ERRORLEVEL 2 START C:\progra~1\Netscape
IF ERRORLEVEL 1 start c:\progra~1\intern~1\iexplore.exe
:END

NOTE: Observe the order in which we give the IF statements.

In the next post we will see some more concepts of Batch File Programming.

No comments: