テキストファイルの内容を比較するバッチ

2つのテキストファイルを比較し、異なる部分を行番号付きで出力するバッチです。


目次

  1. ファイルを比較するバッチ
  2. 使い方
  3. オプションの説明

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 … 不一致発見後に確認する、一致すべき連続行数を指定

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

seventeen − thirteen =