ファイルが存在するかどうか

何らかのファイル操作を目的としたバッチ処理では、対象のファイルが存在するかどうかを調べる必要があるかもしれません。次のifコマンドを使えば、ファイルが存在するかどうかで処理を分岐させることができます。

 if exist ファイル名 コマンド

このifコマンドは、ファイル名に指定したファイルが存在していれば続くコマンドを実行します。例えば、操作対象のファイルが存在しているかどうかを調べ、存在していなければファイルの生成処理を最初に実行し、その後にファイルの編集や移動などの操作を行うというようなプログラムを実現できます。

サンプル 05

@echo off
set /P FILENAME="調べるファイル名>"

if exist %FILENAME% echo 「%FILENAME%」が見つかりました
pause

実行結果

サンプル05の実行結果

サンプル05は、入力した名前のファイルが存在するかどうかをifコマンドで調べ、存在していればファイルが見つかったことを表示して終了します。

条件が不成立でコマンドを実行する

上記の3つのifコマンド(文字列の比較、終了コード、ファイルの存在)は、指定した条件が成立していれば対象のコマンドを実行するというものでした。ところが、ファイルが存在していなかった場合など、条件が不成立の場合にコマンドを実行したいこともあるでしょう。このような場合は、次のようなifコマンドを利用します。

if not 文字列1==文字列2 コマンド
if not errorlevel 番号 コマンド
if not exist ファイル名 コマンド

これらのifコマンドは、これまでの3つのifコマンドの条件の手前にnotを追加したものです。上から順に、文字列が一致しなかった、終了コードが指定した番号未満だった、ファイルが存在しなかった場合に続くコマンドが実行されます。

サンプル 06

@prompt $G
if not Kitty == Kitty echo このコマンドは実行されません
if not Kitten == Kitty echo このコマンドは実行されます
@pause

実行結果

サンプル06の実行結果

サンプル06は、サンプル01のifコマンドの条件を逆転させたものです。比較する文字列が一致しなければ続くコマンドを実行します。