where <N> is the desired number. The <N+1> portion of the command must be calculated as the command is entered, because the MS-DOS command interpreter cannot perform mathematical calculations.
IF ERRORLEVEL <N> IF NOT ERRORLEVEL <N+1> <COMMAND>
is equivalent to the algebraic construct
IF ERRORLEVEL 5 ...
while the command
IF E = 5 OR E > 5 THEN ...
is equivalent to the algebraic construct:
IF NOT ERRORLEVEL 6
The combination of the two IF commands works as described because the second IF is executed only if the first is true, and the <command> is executed only if the second is true; therefore, the combination of the two commands is executed only if BOTH are true. Because the desired error level is bracketed with the two tests, the entire conditional is TRUE only when ERRORLEVEL is exactly that value.
IF E < 6 THEN ...
This same syntax can be expanded to cover a sequential range of ERRORLEVEL return codes by increasing the difference between the values checked for.
Article ID: 69576 - Last Review: Nov 16, 2006 - Revision: 1