条件式には、ファイルの存在を調べるexistが使用できます。
if exist C:¥a.txt type C:¥a.txt
これはC:¥a.txtが存在する場合、a.txtの中身を表示すると言うバッチファイルです。
「exist C:¥a.txt」までが条件式で、
「type C:¥a.txt」までが実行文です。
ファイルが存在しない場合は
if not exist ~
と書きます。
条件式が偽の場合に実行したい実行文がある場合は「if exist C:¥a.txt type C:¥a.txt」のあとに必ず半角スペースを入れて「else 実行文」を書き加えます。条件式が偽の場合にechoコマンドを実行する場合は
if exist C:¥a.txt (type C:¥a.txt) else echo not exist!
というふうに書きます。「type C:¥a.txt」を括弧でくくっているのは、typeコマンドの範囲を決める為です。もし括弧でくくらなかった場合、else以下のelse、echo、not、exist!がtypeコマンドの引数と解釈され、意図した通りにバッチファイルが実行されません。
複数のコマンドを実行したい場合にも括弧を使用します。この場合、コマンドは一行ずつ書かなくてはいけません。
if exist C:¥a.txt (type C:¥a.txt
echo type OK
) else (
echo type NG
)
if~elseを書く上で二つ注意があります。まず一つは以下のように
if exist C:¥a.txt (type C:¥a.txt)
else echo not exist!
ifコマンドの終わりとelseコマンドが違う行になっている場合です。この場合、意図した通りにバッチファイルが実行されません。
ifコマンドの終わり(この場合は「)」がifコマンドの終わりとなる)とelseコマンドは同じ行でなければいけないという点です。
もう一つはif~else文でdelコマンドを使用する場合は必ず括弧で囲むという点です。
if exist C:¥a.txt (del C:¥a.txt) else echo not exist!
delコマンドはその仕様上、改行で終了しなければならないため括弧でくくる必要があります。