FC(ファイルの比較)

にメンテナンス済み

設定ファイルを書き換えたあとに「どこを変更したのか」を確認したい、バックアップしたファイルと現在のファイルが同じか調べたい、といった場面はよくあります。

FC コマンドは、2つのファイルを比較して違いのある箇所を表示します。専用の差分ツールを入れなくても、コマンドプロンプトだけで手軽に確認できます。

基本的な使い方

FC コマンドには、比較したい2つのファイルを指定します。

FC [オプション] ファイル1 ファイル2

同じ内容の場合

ファイルの内容が同じ場合は、次のように表示されます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc old.txt new.txt
ファイル old.txt と new.txt を比較しています
FC: 相違点は見つかりませんでした
C:\users\user>

違いがある場合

内容に違いがある場合は、***** で区切って、ファイルごとに違いのある部分が順に表示されます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc old.txt new.txt
ファイル old.txt と new.txt を比較しています
***** old.txt
port=8080
mode=debug
log=on
***** new.txt
port=8080
mode=release
log=on
*****
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

上の例では、old.txt の mode=debug が new.txt では mode=release に変わっていることが分かります。違いのある行の前後にある、一致している行も数行ぶん一緒に表示されます。

表示のされ方は環境によって異なります

メッセージの文言は、Windows の表示言語によって変わります。ここでは日本語環境の表示例を載せています。

PowerShell では fc.exe と入力します

PowerShell では fc が Format-Custom のエイリアスになっているため、この記事のコマンドは動作しません。PowerShell から使う場合は fc.exe と入力してください。

FC コマンドのオプション

よく使うオプションは次の通りです。

オプション説明
/Bバイナリ(1バイトずつ)で比較する
/C大文字と小文字を区別しない
/Nテキスト比較時に行番号を表示する
/W連続する空白やタブを1つの空白として扱い、行頭・行末の空白も無視して比較する
/Tタブをスペースに展開しない
/Lファイルを ASCII テキストとして比較する
/Uファイルを Unicode(UTF-16)テキストとして比較する
/A違いのある範囲の先頭行と末尾行だけを表示する
/LBn連続して不一致となる行数の上限を指定する(既定は100行)
/nnnn不一致のあと、何行連続して一致したら同期できたとみなすかを指定する(既定は2行)

/C - 大文字と小文字を無視する

既定では大文字と小文字は区別されます。区別せずに比較したいときは /C を付けます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc /C old.txt new.txt

/N - 行番号を表示する

どの行に違いがあるのかを知りたいときは /N を付けます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc /N old.txt new.txt
ファイル old.txt と new.txt を比較しています
***** old.txt
1: port=8080
2: mode=debug
3: log=on
***** new.txt
1: port=8080
2: mode=release
3: log=on
*****
C:\users\user>
長いファイルでは /N が便利

行数の多いファイルでは、行番号があるとエディタで該当箇所へすぐ移動できます。不要であれば外してかまいません。

/W - 空白の違いを無視する

インデントの量や行内の空白の数だけが違うファイルは、既定では「違いがある」と判定されます。/W を付けると、連続する空白やタブが1つの空白として扱われ、行頭・行末の空白も無視されるため、こうした違いを無視できます。ただし、空白が「ある」か「ない」かの違いは無視されません。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc /W old.txt new.txt

/B - バイナリファイルを比較する

画像や実行ファイルなど、テキストではないファイルは /B を付けて1バイトずつ比較します。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc /B backup.zip current.zip
ファイル backup.zip と current.zip を比較しています
00000042: 1F 2A
00000043: 8B 00
C:\users\user>

各行は「先頭からの位置(16進数): ファイル1のバイト値 ファイル2のバイト値」を表します。上の例では、オフセット 0x42 と 0x43 の位置のバイトが異なっています(オフセットは 0 始まりです)。ファイルの長さが異なる場合は、その旨のメッセージが表示され、終了コードも「違いあり」になります。

拡張子によって比較方式が自動で変わります

.exe、.com、.sys、.obj、.lib、.bin の拡張子のファイルは、/B を付けなくてもバイナリで比較されます。それ以外のファイルは /L(ASCII テキスト比較)で比較されます。

/U - Unicode(UTF-16)のテキストを比較する

UTF-16 で保存されたテキストファイルは、既定の ASCII 比較では差分の表示が文字化けします。その場合は /U を付けます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc /U utf16-a.txt utf16-b.txt
文字コードに注意

文字コードの異なるファイル同士(たとえば UTF-8 と Shift_JIS)を比較すると、内容が同じ文章でも「違いあり」と判定されます。比較の前に、文字コードを揃えておいてください。文字コードについては関連記事も参照してください。

ワイルドカードで複数ファイルを比較する

ファイル名には * や ? といったワイルドカードを使えます。たとえば、2つのフォルダにある同名のテキストファイルをまとめて比較できます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc C:\backup\*.txt C:\work\*.txt
フォルダの再帰的な比較はできません

FC は指定したフォルダ直下のファイルだけを比較します。サブフォルダを含めたフォルダ全体の比較には、PowerShell の Compare-Object に Get-ChildItem と Get-FileHash を組み合わせる方法があります。なお、robocopy の /L(コピーせず一覧のみ表示)はサイズと更新日時から新規・更新・不足ファイルを確認するもので、内容そのものは比較しません。

終了コードで一致を判定する

FC は比較結果を終了コード(ERRORLEVEL)で返します。バッチファイルで「同じ内容かどうか」を判断するときに使えます。

終了コード意味
02つのファイルは同じ
12つのファイルに違いがある
2比較するファイルの一方が見つからない
-1構文が正しくない
@echo off
fc /B "%~1" "%~2" >nul
if %errorlevel%==0 (
  echo 同じファイルです。
) else if %errorlevel%==1 (
  echo 違いがあります。
) else (
  echo ファイルが見つからないか、指定が正しくありません。
)

判定だけを行いたいので、比較結果の表示は >nul で捨てています。このバッチファイルは日本語を表示するため、Shift_JIS(ANSI)で保存してください。UTF-8 で保存すると文字化けします。

if errorlevel 1 は 2 以上でも真になります

if errorlevel 1 は「終了コードが 1 以上」のときに真になるため、ファイルが見つからなかった場合(終了コード 2)も含まれてしまい、逆に -1 は偽になります。ここでは %errorlevel%==0 のように値を直接比較しています。

比較結果をファイルに保存する

差分をレポートとして残したいときは、リダイレクトでファイルに保存します。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc /N old.txt new.txt > diff.txt

実践例

設定ファイルの変更箇所を確認する

編集前にコピーしておいたファイルと比較すれば、変更箇所を確認できます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>copy config.ini config.ini.bak

編集後に次のコマンドで差分を確認します。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc /N config.ini.bak config.ini

コピーが正しくできたか確認する

大きなファイルをコピーしたあと、元のファイルと同じ内容かを確認できます。ただし、サイズの大きなファイルでは時間がかかります。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>fc /B D:\data\archive.zip E:\backup\archive.zip

まとめ

やりたいことコマンド
2つのファイルを比較するfc ファイル1 ファイル2
大文字小文字を無視するfc /C ファイル1 ファイル2
行番号を表示するfc /N ファイル1 ファイル2
空白の違いを無視するfc /W ファイル1 ファイル2
バイナリで比較するfc /B ファイル1 ファイル2
一致を判定するfc ... >nul と %errorlevel%

関連記事

練習問題

練習問題

2つのテキストファイルを比較し、違いのある行の行番号を表示したいときに使うコマンドはどれでしょうか?

回答がサーバーに送信されることはありません
練習問題

FC コマンドで比較した2つのファイルの内容がまったく同じ場合、終了コードはいくつになるでしょうか?

回答がサーバーに送信されることはありません
#コマンドプロンプト #バッチファイル #FC #コマンド #ファイル比較