バッチでファイル比較を行う「fc」コマンドについて サンプルバッチファイル

今回は、Windowsのコマンド「fc」について解説します。
fc コマンドは、Windowsのコマンドプロンプトで2つのファイルまたはファイルセットを比較し、相違点を表示するためのコマンドです。



fcコマンド 基本的な使い方

fc ファイル1 ファイル2

ファイル1: 比較したい最初のファイルのパス
ファイル2: 比較したい2番目のファイルのパス

コマンドを実行すると、ファイル1とファイル2の相違点が画面に表示されます。

下記は、相違がない場合の表示例です。

ファイルに違いがある場合です。
わかりにくいですが、test1.txtには、2行目が空白で、test2.txtでは、2行目が「こんにちは。」となっており、
相違点が検出されています。
ちなみに、test1.txtとtext2.txtの文字コードは、「ANSI」形式です。

fcコマンドのオプションで /nオプションを付けると、行番号を表示してくれます。

fcコマンドのオプション

/B: バイナリモードで比較。テキストファイルだけでなく、実行ファイルなどのバイナリデータも比較できます。
/L: テキストモードで比較。行単位で比較を行い、相違のある行とその前後の行を表示します。
/N: 行番号を表示しながら比較。どの行に相違があるのかを特定しやすくなります。
/A: 全ての行を表示。相違がある行だけでなく、全ての行を表示します。
/C: 大文字小文字を区別せずに比較。
/T: タブをスペースに置き換えて比較。
/W: 空白文字を無視して比較。

オプションの例を使用しています。
バイナリオプションでも比較が可能のため、Exelを使って比較します。
最初は、相違がないパターンです。
新規Excelを作成し、A1に「TEST」と入力し手test1.xlsxという名前で保存します。
このExcelをコピーしてtest2.xlsxにします。

test2.xlsxのA1の値を「TEST2」に変更し、fcコマンドを実行します。
相違点の行はわかりませんが、同じではないという結果がわかります。

fcコマンドを使ったバッチファイルのサンプル

fcコマンドを使ったバッチファイルのサンプルです。

@echo off


set file1="C:\Users\user\Desktop\test1.xlsx"
set file2="C:\Users\user\Desktop\test2.xlsx"

set diff=

rem ファイルを比較し、結果を変数に格納
fc /b "%file1%" "%file2%" > nul
if %errorlevel% equ 1 (
    set diff=異なる
) else (
    set diff=同じ
)

rem 結果を表示
echo %file1% と %file2% を比較しました。
echo ファイルは%diff%です。

まとめ

今回は、バッチファイルのfcコマンドについて解説しました。

タイトルとURLをコピーしました