Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

同じフォルダ内の A_01.txt と A_02.txt を比較して、結果を A_result.txt に記録する簡単な差分チェックツール

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!
@echo off
setlocal
set FILE1=%~dp0A_01.txt
set FILE2=%~dp0A_02.txt
set OUTPUT=%~dp0A_result.txt

echo [比較レポート] > "%OUTPUT%"
echo 実行日: %date% %time% >> "%OUTPUT%"
echo ---------------------------------------- >> "%OUTPUT%"

:: fcコマンドで比較して、エラーレベルで判定
fc /n "%FILE1%" "%FILE2%" > nul
if %errorlevel% equ 0 (
    echo 結果: 差異はありません。2つのファイルは同一です。 >> "%OUTPUT%"
) else (
    echo 結果: 相違点が検出されました。 >> "%OUTPUT%"
    echo. >> "%OUTPUT%"
    echo [相違点一覧] >> "%OUTPUT%"
    :: fcの結果をそのまま表示(差異のみ)
    fc /n "%FILE1%" "%FILE2%" >> "%OUTPUT%"
)
echo ---------------------------------------- >> "%OUTPUT%"
echo レポート終了 >> "%OUTPUT%"

echo 比較が完了しました。
echo 結果は %OUTPUT% を確認してください。
pause
endlocal

 

対象ファイル:

  • A_01.txt
  • A_02.txt
  • 出力先:A_result.txt

処理の流れ

  1. バッチ自身が置かれているフォルダを基準に、比較対象のファイル名を決める
  2. fc /n コマンドで2ファイルを比較する
    • /n は差異の行番号を表示する指定
  3. 比較結果の終了コードを確認する
    • 0:完全一致
    • 0以外:相違あり、またはファイル読み込みエラー
  4. A_result.txt に以下を書き込む
    • 比較レポートのタイトル
    • 実行日時
    • 一致・相違の判定
    • 相違がある場合は fc の比較結果
  5. 画面に完了メッセージを表示し、pause でキー入力待ちになる

注意点

  • A_result.txt は毎回 > で作り直されるため、前回の結果は上書きされる
  • ファイルが存在しない場合も「相違点が検出されました」と表示される可能性がある
  • fc のエラー内容もレポートに出力される
  • バッチファイルがCP932(Shift-JIS)形式で保存されている場合、文字化けを避けるには、Windows環境ではそのまま使うか、文字コードを統一したほうがいい
  • 比較は基本的に行単位で、空白や改行の違いも差異として扱われる

 

差異結果例

[比較レポート] 
実行日: 2026/07/30 23:15:48.74 
---------------------------------------- 
結果: 相違点が検出されました。 
 
[相違点一覧] 
ファイル C:\USERS\XXXXXX\ONEDRIVE\WORKSPACE\A_01.txt と C:\USERS\XXXXXX\ONEDRIVE\WORKSPACE\A_02.TXT を比較しています
***** C:\USERS\XXXXXX\ONEDRIVE\WORKSPACE\A_01.txt
    1:  Line 1: Item A
    2:  Line 2: Item B
    3:  Line 3: Item C
***** C:\USERS\XXXXXX\ONEDRIVE\WORKSPACE\A_02.TXT
    1:  Line 1: Item A
    2:  Line 2: Item Z
    3:  Line 3: Item C
*****

***** C:\USERS\XXXXXX\ONEDRIVE\WORKSPACE\A_01.txt
    4:  Line 4: Item D
    5:  Line 5: Item E
    6:  Line 6: Item F
***** C:\USERS\XXXXXX\ONEDRIVE\WORKSPACE\A_02.TXT
    4:  Line 4: Item D
    5:  Line 5: Item W
    6:  Line 6: Item F
*****

---------------------------------------- 
レポート終了 

 

【参考】fcコマンドの仕様

Windows標準の fc (File Compare) コマンドは、デフォルトで相違箇所の前後(通常は1〜2行程度)をコンテキストとして表示する仕様になっています。 fc は以下のような挙動をします:

  1. 一致する部分は省略: 前後の合致している行は、比較対象の塊として認識され、相違点の前後に補足情報として表示されます。
  2. 完全な一致: 全く同じ行が連続して続く場合、それらは省略されずそのまま表示されますが、相違箇所が見つかるとそのブロック全体を表示します。
タイトルとURLをコピーしました