Windowsコマンドプロンプトでdiffのようなファイル比較

LinuxdiffコマンドのようにWindowsでファイル比較できないかと調べていたら、compというコマンドがありました。

コマンド

comp [オプション] <ファイル1> <ファイル2>

使用例

@echo off

rem 内容が同じファイルの比較
echo N | comp a.txt b.txt 2>nul
echo 戻り値は「%ERRORLEVEL%」です

echo.

rem 内容が異なるファイルの比較
echo N | comp a.txt c.txt 2>nul
echo 戻り値は「%ERRORLEVEL%」です

結果

a.txt と b.txt を比較しています...
ファイルに違いはありません

戻り値は「0」です

a.txt と c.txt を比較しています...
ファイルのサイズが違います。

戻り値は「1」です
  • compをそのまま使うと、ほかのファイルを比較しますか (Y/N)?と表示されてキー入力を求められます。対処として、echo N | comp <ファイル1> <ファイル2> 2>nulとするとキー入力をスキップできます。
  • ディレクトリを比較する場合はcomp <ディレクトリ1> <ディレクトリ2>再帰的に比較してくれます。