2つのテキストファイルを比較し、異なる部分を行番号付きで出力するバッチです。
目次
1. ファイルを比較するバッチ
@echo off
if not "%~1" == "" if not "%~2" == "" (goto Run)
echo このバッチ上に比較する2つのファイルをドラッグ^&ドロップしてください。
pause > nul & exit /b
:Run
if not %0=="%~dp0.%~nx0" (
start /min "" cmd /c,"%~dp0.%~nx0" %*
exit /b
)
fc /n /t /1 "%~1" "%~2" > "%~dp1%~n0_%~n1_%~n2.txt"
start "" "%~dp1%~n0_%~n1_%~n2.txt"
2. 使い方
このバッチ上に、比較したい2つのテキストファイルを同時にドラッグ&ドロップします。
比較結果が「バッチ名_ファイル名1_ファイル名2.txt」に出力され、直後にそのファイルを開いて表示します。
相違部分は、その前後の一致行で挟んで表示されます。
例えば、以下のように “テスト1.txt” と “テスト2.txt” との2つのテキストファイルがあるとします。
これらを比較すると、次のような結果が得られます。
上段では、2行目に空白行があるため、一致行の「aaa」と「bbb」とに挟まれた部分が表示されています。
下段では、「ddd」が大文字になっているうえに「insert」行が追加されているため、一致行の「ccc」と「eee」とに挟まれた部分が表示されています。
3. オプションの説明
「fc」コマンドは、2つのファイルを比較して相違点を表示します。今回使ったオプションは以下の通りです。
- /n … 行番号を表示
- /t … タブをスペースに変換しないで比較
- /1 … 不一致発見後に確認する、一致すべき連続行数を指定