COMP = ファイルの内容を比較する。最後に質問あり版 - Windowsのコマンドプロンプト(bat,cmd)
○Windows XP
2つのファイルの内容を比較します。FCコマンドよりも高速に比較します。そして最後に、他のファイルを比較するかどうか質問します。
o バイナリファイルとして比較します。(= テキストファイルを比較する事も可能です。)
o 大きなファイルの比較も高速です。10バイトの不一致で比較を終えるからです。
o 但し、最後に質問します。ですので、このコマンドは自動処理には向いていません。
o 2つのファイル名に同時にワイルドカード(「*」や「?」)を指定する時は、制限事項があります。FCコマンドと同じ制限です。
**** 書式
--------
comp [オプション] 比較したいファイル名 比較相手のファイル名
公式ヘルプの説明では
comp 比較したいファイル名 比較相手のファイル名 [オプション]
--------
o コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
o オプション = 下記のオプションを、半角空白区切りで並べます。
+ 公式ヘルプの説明では、ファイル名の指定の後に置くとの事でした。
+ オプションを省略した時は、次のように動きます。
+ バイナリファイルとして比較します。
+ 不一致バイトがある場合は、10バイト分まで表示します。
名前 | 意味 |
---|---|
/d | 不一致バイトの値を、10進数で表示します。 既定では、16進数(= 0-9,A-F)で表示します。 |
/a | 不一致バイトの値を、文字で表示します。 ヘルプには「ASCII文字(= 半角の英数字や記号)」とありますが、全角文字も正しく表示されました。 |
/l (= /L) | 不一致バイトの位置を、行番号で表示します。 既定では、ファイル先頭からのオフセット(= バイト位置)を表示します。 |
/n=数字 | ファイルの先頭から指定された行数分だけ比較します。 先頭行が1です。/n=1 と書いた時は、先頭行だけを比較します。 |
/c | 英字の大文字と小文字を区別しません。 |
/off または /offline | オフライン属性が設定されたファイルも比較します。 このオプションについては、to_dkでは動作確認していません。 |
o 比較したいファイル名 = このファイルに対して比較を行います。フォルダーを指定する事も出来ます。
+ ワイルドカード(「*」や「?」)を指定する事も出来ます。
+ 対応するファイルが「比較相手のファイル名」から見つからない時は、きっちりエラーになります。
o 比較相手のファイル名 = 指定方法は「比較したいファイル名」と同じです。
+ 両方のファイル名に対してワイルドカードを使う時、上手に比較出来ないパターンがありますので注意します。
+ 詳細は「FCコマンドで、ファイル名のワイルドカードが正しく動かないパターン」
--------
rem 成功するパターン
comp a*.txt b*.txt
comp c:\a\*.txt c:\b\*.txt
rem 失敗するパターン
comp *a.txt *b.txt
comp m*a.txt m*b.txt
--------
+ この他に、ワイルドカードを使って「比較したいファイル名」よりも多くのファイルを指定すると、余ったファイルを無視します。
**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = ファイル内容の一致
+ 「ファイルに違いはありません」 = 2つのファイルの内容は一致しました。
+ 比較した全てのファイルが一致していた時に 0 になります。
+ 「比較したいファイル名」が不足している場合、エラーになりませんので気を付けます。
o 1 = ファイル内容に相違有り
+ 比較した1つ以上のファイルが相違していた時に 1 になります。
+ 比較相手のファイルが存在しない時は、2 になりますので気を付けます。
+ 「オフセット 393 で比較エラーがあります」 = 相違点を発見しました。
+ 「ファイルが見つからないか、開けません: ネギ.txt」 = 差分表示を途中で止めました。
o 2 = 比較するファイルが開けない時。もしくは書式エラー
+ 「FC: ネギ.TXT を開けません。このファイルまたはフォルダは存在しません」 = 対応する「比較相手のファイル名」のファイルが見つかりませんでした。
+ 「コマンド ラインの構文が正しくありません」 = おそらく指定したオプションが間違っています。
**** 機能
o 2つのファイルの内容を比較します。フォルダーを指定する事も出来ます。
+ ワイルドカード(「*」や「?」)を使用する事も出来ます。但し、書き方に制限事項がありますので注意します。
+ 詳細は「FCコマンドで、ファイル名のワイルドカードが正しく動かないパターン」
o 最初に、比較するファイル名を出力します。「例。ファイル ミクさん.txt と ネギ.TXT を比較しています...」
o 次に、相違点を出力します。
o その後に、比較結果を表示します。
o 最後に、「ほかのファイルを比較しますか (Y/N)?」と質問します。
**** 使用例
--------
comp ミクさん.txt ミクさん.bak
comp /a /l c:\ミクさん\*.txt c:\ミクさんバックアップ\*.txt
--------
+ コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
+ 最後に質問してきます。ですので、このコマンドは、自動処理には向いていません。
**** メモ
o 文字コードが UTF-8 のファイルも比較出来ます。
+ 但し、Windows XPで比較結果を文字で表示する時(/A)には、比較結果が正しく表示されない事があります。
**** 確認したバージョン
o Windows XP Service Pack 3 -- 但し、to_dk未検証項目あり(= /OFFLINE)
==
関連ページ:
▼Windowsコマンド。ファイルとフォルダー関連(▼ABC順)
▼Windowsコマンド一覧(▼ABC順)
▼コマンドプロンプト画面
▼制作メモ
> DISKCOMP = フロッピーディスクの内容を比較する。途中に質問あり版
SORT = ファイルの内容やコマンド出力結果を並べ替えて表示する
COPY = ファイルをコピーする
+
FCコマンドで、ファイル名のワイルドカードが正しく動かないパターン