バッチファイルを作成する際、ファイルの内容が期待どおりでない場合や、特定の条件を満たさない場合の処理を記述したいことがあります。
この記事では、ファイルが不一致の場合を判定して処理を行う方法を紹介します
サンプルコード
バッチファイルでファイルが不一致の場合に処理を行うサンプルコードです。
@echo off
fc file1.txt file2.txt > nul
if errorlevel 1 (
echo The files do not match.
rem ここに不一致時の処理を書く
) else (
echo The files match.
rem ここに一致時の処理を書く
)
pause
このスクリプトでは、fcコマンドでfile1.txtとfile2.txtを比較し、その結果をnul(nullではない!)にリダイレクトしています(つまり、比較結果を表示しません)。
fcコマンドは、ファイルが一致する場合はエラーコード0を、不一致の場合はそれ以外のエラーコードを返します。
このエラーコードをif errorlevel構文でチェックし、ファイルが不一致の場合に特定のアクション(この例では不一致を通知するメッセージの表示)を実行します。
参考情報
- fcコマンドは、テキストファイルだけでなくバイナリファイルの比較にも使用できます。バイナリ比較を行うには/Bオプションを使用します。
- if errorlevel構文は、指定した数値以上のエラーレベルが返された場合に真と評価されます。このため、if errorlevel 1はエラーレベルが1以上、つまりファイルが不一致の場合に真となります。
まとめ
この記事では、ファイルが不一致の場合に特定の処理を行う方法を紹介しました。この技術を活用して、より高度なバッチファイルを作成してみてください。