fc【コマンド】
コマンドだよ
Windowsで使えるよ
ファイルの内容を比較するよ
スポンサーリンク
簡単に書くよ
fc【コマンド】とは
コンピュータさんに対する命令文(コマンド)のひとつ
であり
2つのファイルの内容を比較するときに使うコマンド
です。
詳しく書くよ
「fc」コマンドは
ファイルをテキストデータとして比較するときに使うコマンド
です。
Windows系で使えます。
書き方は
fc [オプション] [ファイル1] [ファイル2]
です。
オプションは、ちらほらとあります。
| オプション | 説明 |
|---|---|
| /A | 違う部分の最初と最後と行のみを表示する |
| /B | バイナリファイルとして比較する |
| /C | 大文字・小文字を区別しない |
| /L | テキストファイルとして比較する |
| /LB【行数】 | 違う部分が【行数】以上続いた場合は比較を止める。未指定時は100行 |
| /N | テキストファイルの比較で、行番号を表示する |
| /OFF | オフライン属性のファイルも対象にする |
| /OFFLINE | オフライン属性のファイルも対象にする |
| /T | タブをスペースに変換しない |
| /U | Unicodeのテキストファイルとして比較する |
| /W | 連続するタブとスペースを1つのスペースに置き換える |
| /【行数】 | 違う部分が見つかった後に【行数】分の行が連続で一致していたら「あっ、ここからは一致してるね」と判断する。未指定時は2行 |
です。
例えば以下のようなファイルがあったとします。
■hoge.txt
1
2
3
4
5
6
7
8
9
10
■hoge2.txt
1
2a
3
4b
5
6
7
8
9c
10
見にくいので横に並べると、こんな感じです。

この2つのファイルに対して
fc hoge.txt hoge2.txt
を実行すると、以下のような結果になります。
ファイル hoge.txt と HOGE2.TXT を比較しています
***** hoge.txt
1
2
3
4
5
***** HOGE2.TXT
1
2a
3
4b
5
*****
***** hoge.txt
8
9
10
***** HOGE2.TXT
8
9c
10
*****
補足として、比較結果は違う部分に対して前後の行も併せて表示されます。
例えば「hoge.txt」の
2
3
4
の部分と「hoge2.txt」の
2a
3
4b
の部分が異なりますので、前後の1行も加えて
***** hoge.txt
1
2
3
4
5
***** HOGE2.TXT
1
2a
3
4b
5
*****
という内容が表示されているのです。
同じように「hoge.txt」の
9
の部分と「hoge2.txt」の
9c
の部分が異なりますので、前後の1行も加えて
***** hoge.txt
8
9
10
***** HOGE2.TXT
8
9c
10
*****
のような表示内容になっています。
これが「fc」コマンドの一番単純な使い方です。
使うのは難しくないですが、結果の見方に慣れが必要かもしれませんね。
次に補足が必要そうなオプションについて説明します。
まず「/L」オプションと「/B」オプションですが「/L」がテキストデータとして比較「/B」がバイナリデータとして比較するためのオプションです。
例えば「/L」オプションを指定して
fc /L hoge.txt hoge2.txt
を実行すると、結果が
ファイル hoge.txt と HOGE2.TXT を比較しています
***** hoge.txt
1
2
3
4
5
***** HOGE2.TXT
1
2a
3
4b
5
*****
***** hoge.txt
8
9
10
***** HOGE2.TXT
8
9c
10
*****
になるのに対し「/B」オプションを措定して
fc /B hoge.txt hoge2.txt
を実行すると、結果は
ファイル hoge.txt と HOGE2.TXT を比較しています
00000004: 0D 61
00000005: 0A 0D
00000006: 33 0A
00000007: 0D 33
00000008: 0A 0D
00000009: 34 0A
0000000A: 0D 34
0000000B: 0A 62
0000000C: 35 0D
0000000D: 0D 0A
0000000E: 0A 35
0000000F: 36 0D
00000010: 0D 0A
00000011: 0A 36
00000012: 37 0D
00000013: 0D 0A
00000014: 0A 37
00000015: 38 0D
00000016: 0D 0A
00000017: 0A 38
00000018: 39 0D
00000019: 0D 0A
0000001A: 0A 39
0000001B: 31 63
0000001C: 30 0D
0000001D: 0D 0A
0000001E: 0A 31
FC: HOGE2.TXT は hoge.txt より長いファイルです
に なります。
見た目が全然違いますね。
「/L」「/B」共に未指定の場合は、ファイルの拡張子からテキストデータとして比較するかバイナリデータとして比較するかを自動判定してくれます。
拡張子が
・.exe
・.bin
・.com
・.sys
・.obj
・.lib
のいずれかの場合はバイナリデータとして比較し、それ以外の拡張子の場合はテキストデータとして比較してくれます。
次に「/A」オプションを指定してみます。
「/A」オプションは違う部分を表示するときに最後と最後の行のみを表示してくれるオプションです。
例えば
fc /A hoge.txt hoge2.txt
を実行すると、以下のような結果になります。
ファイル hoge.txt と HOGE2.TXT を比較しています
***** hoge.txt
1
...
5
***** HOGE2.TXT
1
...
5
*****
***** hoge.txt
8
9
10
***** HOGE2.TXT
8
9c
10
*****
「/A」オプション未指定時は
***** hoge.txt
1
2
3
4
5
***** HOGE2.TXT
1
2a
3
4b
5
*****
となっていた部分の途中が省略表示されて
***** hoge.txt
1
...
5
***** HOGE2.TXT
1
...
5
*****
になりましたね。
これが「/A」オプションの効果です。
次に「/LB【行数】」オプションですが、これは違う部分が多すぎたら比較を止めちゃうオプションです。
おそらく、全然別のファイルを比較しちゃった場合の対策なのでしょうね。
例えば
fc /LB2 hoge.txt hoge2.txt
を実行すると、以下のような結果になります。
ファイル hoge.txt と HOGE2.TXT を比較しています
再同期に失敗しました。ファイルが著しく異なります。
***** hoge.txt
1
2
***** HOGE2.TXT
1
2a
*****
「/LB2」の指定は「違う部分が2行を越した場合(3行以上の場合)は処理を止めていーよ」の指定です。
違う部分が
***** hoge.txt
1
2
3
4
5
***** HOGE2.TXT
1
2a
3
4b
5
*****
のように3行(表示上は前後1行プラスして5行)あるので、処理を途中で止めちゃいました。
そして「再同期に失敗しました。ファイルが著しく異なります。」と言い訳をしているのです。
これが「/LB【行数】」オプションの動きです。
ちなみに「/LB【行数】」を未指定のときは「/LB100」を指定したのと同じ動きになります。
最後に「/【行数】」オプションですが、これは一度違う部分が見つかった後に再度「あぁ、ここからは一致しているね」と判断するための判断基準を指定するオプションです。
何も指定しない場合は「/2」を指定したのと同じ扱いで、2行以上連続で一致したら「あぁ、ここからは一致しているね」と判断します。
ここで「hoge.txt」と「hoge2.txt」をもう一度見てください。

2つのファイルは「2」と「2a」が違います。
その次の行の「3」と「3」は同じです。
その次の行の「4」と「4b」は違います。
同じ行が連続して2行出てきませんでした。
そのため、この間は「まだ一致していない」つまり「ひとかたまりの違う部分」と判断されるのです。
その後「5」と「5」の行、「6」と「6」の行と連続して一致するので、違う部分が終わります。
その後、再度「9」と「9c」で違う部分が出てくるので、これも別のかたまりの違う部分として扱われます。

「fc」コマンドさんは「一致している行が○行以上続いたら、違ってた部分は終わり」と判断しているのですが、その「○行」を変えるオプションが「/【行数】」オプションです。
違いを全部バラして別のかたまりとして表示したいときは「/1」を指定してください。
これは「ちょっとでも一致したら違う部分は終わり」の指定です。
例えば
fc /1 hoge.txt hoge2.txt
を実行すると、以下のような結果になります。
ファイル hoge.txt と HOGE2.TXT を比較しています
***** hoge.txt
1
2
3
***** HOGE2.TXT
1
2a
3
*****
***** hoge.txt
3
4
5
***** HOGE2.TXT
3
4b
5
*****
***** hoge.txt
8
9
10
***** HOGE2.TXT
8
9c
10
*****
「2」と「2a」、「4」と「4b」、「9」と「9c」がすべて別のかたまりとして表示されていますね。
前後1行ずつプラスされて表示されているのでちょっと分かりにくいですが、すべての相違点が別のかたまりとして表示されています。
これが「fc」コマンドの使い方です。
使い方よりも結果の見方に慣れが必要ですね。
一言でまとめるよ
まぁ「fc」ってコマンドが出てきたら「ファイルの内容を比較するときに使うんだな~」と お考えください。
おまけ
■訳してみるよ
「f」は多分「file(ファイル)」の略です。
「file(ファイル)」はカタカナで「ファイル」で分かりますかね。
「c」は多分「compare(コンペア)」の略です。
「compare(コンペア)」の意味は「比較する」とかです。
何となく くっつけると
ファイルを比較する
となります。
■検索してみる?






