バッチ プログラムでは、条件処理を実行します。Performs conditional processing in batch programs.

このコマンドを使用する方法の例については、を参照してください。For examples of how to use this command, see Examples.


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>]


パラメーターParameter 説明Description
not コマンドの実行には、条件が false の場合にのみを指定します。Specifies that the command should be carried out only if the condition is false.
errorlevel<番号 >errorlevel <Number> Cmd.exe で実行する前のプログラムには、終了コードが返される以上になる場合にのみ、true の条件を指定しますします。Specifies a true condition only if the previous program run by Cmd.exe returned an exit code equal to or greater than Number.
<コマンド ><Command> 上記の条件を満たした場合に実行する必要がありますのコマンドを指定します。Specifies the command that should be carried out if the preceding condition is met.
<String1 > = =<String1>== 条件が真の場合にのみを指定しますString1String2は同じです。Specifies a true condition only if String1 and String2 are the same. これらの値には、リテラル文字列またはバッチの変数 (例: %1) を指定できます。These values can be literal strings or batch variables (for example, %1). リテラル文字列を引用符で囲む必要はありません。You do not need to enclose literal strings in quotation marks.
存在<ファイル名 >exist <FileName> 指定したファイル名が存在する場合は、条件が真を指定します。Specifies a true condition if the specified file name exists.
<CompareOp><CompareOp> 3 文字の比較演算子を指定します。Specifies a three-letter comparison operator. 次の一覧が有効な値を表すCompareOp:The following list represents valid values for CompareOp:
EQUと等しいEQU Equal to
NEQ等しくないです。NEQ Not equal to
お近くの LSSより小さいLSS Less than
LEQに等しいまたはそれよりも小さいLEQ Less than or equal to
GTRより大きいGTR Greater than
GEQより大きいまたは等しいGEQ Greater than or equal to
/i/i 文字列を小文字を区別しない比較。Forces string comparisons to ignore case. 使用することができます /i上、 String1 == String2のフォーム場合します。You can use /i on the String1==String2 form of if. これらの比較では、する場合は、両方String1String2桁の数字から成るはのみ、文字列を数値に変換され、数値比較を実行します。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<番号 >cmdextversion <Number> 条件が真の場合にのみ Cmd.exe の機能と等しいコマンド拡張機能に関連付け、または指定された数値より大きい値の内部バージョン番号を指定します。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. 最初のバージョンには 1 です。The first version is 1. コマンド拡張機能を大幅に強化が追加されたときに 1 ずつ増加します。It increases by increments of one when significant enhancements are added to the command extensions. Cmdextversion (既定ではコマンド拡張機能が有効になっている) 拡張機能が無効で条件がときにコマンド true ことはありません。The cmdextversion conditional is never true when command extensions are disabled (by default, command extensions are enabled).
定義されている<変数 >defined <Variable> 場合は true。 条件を指定します変数が定義されています。Specifies a true condition if Variable is defined.
<式 ><Expression> コマンドに渡されるコマンドライン コマンドおよびパラメーターを指定します、句。Specifies a command-line command and any parameters to be passed to the command in an else clause.
/?/? コマンド プロンプトにヘルプを表示します。Displays help at the command prompt.


  • 条件が指定されている場合、場合句が true の場合、条件を次のコマンドを実行します。条件が false の場合、コマンドで、場合句は無視されで指定されている任意のコマンドを実行するコマンドを句。If the condition specified in an if clause is true, the command that follows the condition is carried out. If the condition is false, the command in the if clause is ignored and the command executes any command that is specified in the else clause.
  • プログラムが停止したら、終了コードを返します。When a program stops, it returns an exit code. 終了コードを条件として使用するerrorlevelします。To use exit codes as conditions, use errorlevel.
  • 使用する場合定義、次の 3 つの変数が環境に追加されます: %errorlevel%%cmdcmdline、および %cmdextversion.If you use defined, the following three variables are added to the environment: %errorlevel%, %cmdcmdline%, and %cmdextversion%.
    • %errorlevel% ERRORLEVEL 環境変数の現在の値の文字列表現に展開します。%errorlevel% expands into a string representation of the current value of the ERRORLEVEL environment variable. これは ERRORLEVEL という名前の既存の環境変数がないことを前提としています-が発生した場合、ERRORLEVEL 値をそのを代わりに取得されます。This assumes that there is not an existing environment variable with the name ERRORLEVEL—if there is, you will get that ERRORLEVEL value instead.
    • %cmdcmdline Cmd.exe で Cmd.exe を処理する前に渡された元のコマンド ラインに展開します。%cmdcmdline% expands into the original command line that was passed to Cmd.exe prior to any processing by Cmd.exe. これは CMDCMDLINE という名前の既存の環境変数がないことを前提としています: 代わりに CMDCMDLINE 値を取得する場合は、します。This assumes that there is not an existing environment variable with the name CMDCMDLINE—if there is, you will get the CMDCMDLINE value instead.
    • %cmdextversionの現在の値の文字列形式に展開cmdextversionします。%cmdextversion% expands into the string representation of the current value of cmdextversion. これは CMDEXTVERSION という名前の既存の環境変数がないことを前提としています: 代わりに CMDEXTVERSION 値を取得する場合は、します。This assumes that there is not an existing environment variable with the name CMDEXTVERSION—if there is, you will get the CMDEXTVERSION value instead.
  • 使用する必要があります、後にコマンドと同じ行で句、場合します。You must use the else clause on the same line as the command after the if.


メッセージを表示するには、"データ ファイルを見つけることができません"ファイル Product.dat が見つからない場合に入力します。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 

A ドライブのディスクをフォーマットして、書式設定プロセス中にエラーが発生した場合、エラー メッセージを表示するには、バッチ ファイルで、次の行を入力します。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:

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

Product.dat ファイルを現在のディレクトリから削除するか、Product.dat が見つからない場合は、メッセージを表示するには、バッチ ファイルで、次の行を入力します。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.


これらの行は、次のように 1 行に結合できます。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.)

バッチ ファイルを実行した後、ERRORLEVEL 環境変数の値をエコーするには、バッチ ファイルで、次の行を入力します。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%
echo Program had return code 1
echo Program had return code 0
goto end
echo Done! 

ERRORLEVEL 環境変数の値が 1、型の場合は、「正常」のラベルに移動。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

その他の参照情報Additional references

コマンド ライン構文の記号Command-Line Syntax Key