if (original) (raw)

Performs conditional processing in batch programs.

Syntax

if [not] ERRORLEVEL <number> <command> [else <expression>]
if [not] <string1>==<string2> <command> [else <expression>]
if [not] exist <filename> <command> [else <expression>]

If command extensions are enabled, use the following syntax:

if [/i] <string1> <compareop> <string2> <command> [else <expression>]
if cmdextversion <number> <command> [else <expression>]
if defined <variable> <command> [else <expression>]

Parameters

Parameter Description
not Specifies that the command should be carried out only if the condition is false.
errorlevel Specifies a true condition only if the previous program run by Cmd.exe returned an exit code equal to or greater than number.
Specifies the command that should be carried out if the preceding condition is met.
== Specifies a true condition only if string1 and string2 are the same. These values can be literal strings or batch variables (for example, %1). You do not need to enclose literal strings in quotation marks.
exist Specifies a true condition if the specified file name exists.
Specifies a three-letter comparison operator, including:EQU - Equal toNEQ - Not equal toLSS - Less thanLEQ - Less than or equal toGTR - Greater thanGEQ - Greater than or equal to
/i Forces string comparisons to ignore case. You can use /i on the string1==string2 form of if. These comparisons are generic, in that if both string1 and string2 are comprised of numeric digits only, the strings are converted to numbers and a numeric comparison is performed.
cmdextversion Specifies a true condition only if the internal version number associated with the command extensions feature of Cmd.exe is equal to or greater than the number specified. The first version is 1. It increases by increments of one when significant enhancements are added to the command extensions. The cmdextversion conditional is never true when command extensions are disabled (by default, command extensions are enabled).
defined Specifies a true condition if variable is defined.
Specifies a command-line command and any parameters to be passed to the command in an else clause.
/? Displays help at the command prompt.

Examples

To display the message Cannot find data file if the file Product.dat cannot be found, type:

if not exist product.dat echo Cannot find data file

To format a disk in drive A and display an error message if an error occurs during the formatting process, type the following lines in a batch file:

:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.

To delete the file Product.dat from the current directory or display a message if Product.dat is not found, type the following lines in a batch file:

IF EXIST Product.dat (
del Product.dat
) ELSE (
echo The Product.dat file is missing.
)

Note

These lines can be combined into a single line as follows:

IF EXIST Product.dat (del Product.dat) ELSE (echo The Product.dat file is missing.)

To echo the value of the ERRORLEVEL environment variable after running a batch file, type the following lines in the batch file:

goto answer%errorlevel%
:answer1
echo The program returned error level 1
goto end
:answer0
echo The program returned error level 0
goto end
:end
echo Done!

To go to the okay label if the value of the ERRORLEVEL environment variable is less than or equal to 1, type:

if %errorlevel% LEQ 1 goto okay