今回は、Windowsのコマンド「fc」について解説します。
fc コマンドは、Windowsのコマンドプロンプトで2つのファイルまたはファイルセットを比較し、相違点を表示するためのコマンドです。
fc ファイル1 ファイル2
ファイル1: 比較したい最初のファイルのパス
ファイル2: 比較したい2番目のファイルのパス
コマンドを実行すると、ファイル1とファイル2の相違点が画面に表示されます。
下記は、相違がない場合の表示例です。
ファイルに違いがある場合です。
わかりにくいですが、test1.txtには、2行目が空白で、test2.txtでは、2行目が「こんにちは。」となっており、
相違点が検出されています。
ちなみに、test1.txtとtext2.txtの文字コードは、「ANSI」形式です。
fcコマンドのオプションで /nオプションを付けると、行番号を表示してくれます。
/B: バイナリモードで比較。テキストファイルだけでなく、実行ファイルなどのバイナリデータも比較できます。
/L: テキストモードで比較。行単位で比較を行い、相違のある行とその前後の行を表示します。
/N: 行番号を表示しながら比較。どの行に相違があるのかを特定しやすくなります。
/A: 全ての行を表示。相違がある行だけでなく、全ての行を表示します。
/C: 大文字小文字を区別せずに比較。
/T: タブをスペースに置き換えて比較。
/W: 空白文字を無視して比較。
オプションの例を使用しています。
バイナリオプションでも比較が可能のため、Exelを使って比較します。
最初は、相違がないパターンです。
新規Excelを作成し、A1に「TEST」と入力し手test1.xlsxという名前で保存します。
このExcelをコピーしてtest2.xlsxにします。
test2.xlsxのA1の値を「TEST2」に変更し、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コマンドについて解説しました。