FC = ファイルの内容を比較して、それらの違いを表示する - Windowsのコマンドプロンプト(bat,cmd)
○Windows XP
2つのファイルの内容を比較します。o 2つのファイル名に同時にワイルドカード(「*」や「?」)を指定する時は、制限事項があります。
o バイナリファイルの比較をする事も出来ます。但し、大きなファイルの比較には向いていません。
**** 書式
--------
fc [オプション] 比較したいファイル名 比較相手のファイル名
--------
o コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
o オプション = 下記のオプションを、半角空白区切りで並べます。
+ オプションを省略した時は、次のように動きます。
+ 不一致行と、前後1行を表示します。
+ テキストファイルとして比較します。
+ タブを空白に置き換えたりはしません。
+ 日本語版の場合、文字コードShift JIS (cp932)で比較します。
名前 | 意味 |
---|---|
/b | バイナリモードで比較します。 長い方のファイルを基準にして、不一致バイトを全部表示します。 テキストファイル用のオプションを一緒に指定しても、それらのオプションを無視します。 |
/n | 左側に行番号を表示します。不一致行がある時に、一緒に表示します。 |
/a | 不一致行が連続している時に、表示する行数を減らします。 次のどちらかの形式で表示します。 o 連続する不一致行を「...」1行に置き換え、不一致行の前後の1行と共に表示します。 o もしくは、連続する不一致行の内1行と、不一致行の前後の1行を表示します。 |
/c | 英字の大文字と小文字を区別しません。 |
/l (= /L) | ファイルを ASCII テキストとして比較します。 とヘルプにはありますが、オプション無しと変わらないみたいです。 文字コード Shift-JISのWindows仕様(= cp932)で読み込みます。 |
/lb数字 (= /LB数字) | 比較を途中で止める時の、連続不一致行数を指定します。 指定した値よりも不一致行が多いと、ファイルを最後まで比較するのを止めて、メッセージを出します。「再同期に失敗しました。ファイルが著しく異なります。」 |
/off または /offline | オフライン属性が設定されたファイルも比較します。 このオプションについては、to_dkでは動作確認していません。 |
/t | タブを空白に変換せずに比較します。 /w と併用した時に効果があります。 |
/u | Unicodeのテキストファイルとして比較します。 |
/w | 連続した空白 (タブと半角空白) を 1 つの空白に圧縮して比較します。 |
/数字 | 一致行の判定で使います。不一致行の直後に並ぶ連続一致行数を指定します。 この行数未満で不一致行が再び現れた時は、それまでに一致した行も不一致行として扱います。 |
o 比較したいファイル名 = このファイルに対して比較を行います。
+ ワイルドカード(「*」や「?」)を指定する事も出来ます。
+ フォルダーを指定する事は出来ませんので、c:\ミクさん\* のように指定します。
+ 対応するファイルが「比較相手のファイル名」から見つからない時は、きっちりエラーになります。
o 比較相手のファイル名 = 指定方法は「比較したいファイル名」と同じです。
+ 両方のファイル名に対してワイルドカードを使う時、上手に比較出来ないパターンがありますので注意します。
+ 詳細は「FCコマンドで、ファイル名のワイルドカードが正しく動かないパターン」
--------
rem 成功するパターン
fc a*.txt b*.txt
fc c:\a\*.txt c:\b\*.txt
rem 失敗するパターン
fc *a.txt *b.txt
fc m*a.txt m*b.txt
--------
+ この他に、ワイルドカードを使って「比較したいファイル名」よりも多くのファイルを指定すると、余ったファイルを無視します。
**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = ファイル内容の一致
+ 「FC: 相違点は検出されませんでした」 = 2つのファイルの内容は一致しました。
+ 比較した全てのファイルが一致していた時に 0になります。
+ 「比較したいファイル名」が不足している場合、エラーになりませんので気を付けます。
o 1 = ファイル内容に相違有り
+ 比較した1つ以上のファイルが相違していた時に 1になります。
+ 「FC: ファイル1 は ファイル2 より長いファイルです」 = ファイルの長さが異なります。
+ /B指定時など、比較結果を表示出来ない時に出てくるみたいです。
+ 「FC: ミクさん.TXT を開けません。このファイルまたはフォルダは存在しません」 = 「比較相手のファイル名」が見つかりませんでした。
+ 「再同期に失敗しました。ファイルが著しく異なります。」 = 差分表示を途中で止めました。
+ このメッセージは、/LB数字 オプション専用です。
o 2 = 書式エラー
+ 「FC: ネギ.TXT を開けません。このファイルまたはフォルダは存在しません」 = 指定したファイルが見つかりませんでした。
**** 機能
o 2つのファイルの内容を比較します。
+ ワイルドカード(「*」や「?」)を使用する事も出来ます。但し、書き方に制限事項がありますので注意します。
+ 詳細は「FCコマンドで、ファイル名のワイルドカードが正しく動かないパターン」
o 最初に、比較するファイル名を出力します。「例。ファイル ミクさん.txt と ネギ.TXT を比較しています」
o 次に、相違点を出力します。
o /B(= バイナリモード)指定時、次のように動作します。
+ 2つのファイルの長さが異なっていると、全行異なるものとして扱います。
+ 相違する文字のみ表示します。
o テキストモード(= /Bを指定しない)の時、次のように動作します。
+ 何もオプションを指定しない時は、不一致行と、その前後1行を表示します。
+ 不一致行の判定方法や表示方法は、オプションで変更する事が出来ます。
o 長さが異なると、最後に説明文を出力します。「例。FC: ミクさん.TXT は ネギ.txt より長いファイルです」
**** 使用例
--------
fc ミクさん.txt ミクさん.bak
fc /c c:\ミクさん\*.txt c:\ミクさんバックアップ\*.txt
--------
+ コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
**** メモ
o 文字コードが UTF-8 のファイルも比較出来るみたいです。
+ 但し、Windows XPでは、比較結果の内、漢字などが文字化けします。
+ 比較結果を目視で確認する時は、行番号を表示(= /N)する事をおすすめします。
**** 確認したバージョン
o Windows XP Service Pack 3 -- 但し、to_dk未検証項目あり(= /OFFLINE)
==
関連ページ:
▼Windowsコマンド。ファイルとフォルダー関連(▼ABC順)
▼Windowsコマンド一覧(▼ABC順)
▼コマンドプロンプト画面
▼制作メモ
> COMP = ファイルの内容を比較する。最後に質問あり版
DISKCOMP = フロッピーディスクの内容を比較する。途中に質問あり版
SORT = ファイルの内容やコマンド出力結果を並べ替えて表示する
(2011年8月22日追加。戻り値欄にて、メッセージを1つ追加)