ファイルをバイナリ比較して相違点を表示 comp

comp.exe
簡単に使えるコマンドのご紹介です。
今回解説するのはcompというコマンド。
このコマンドでは2つのファイルの内容を比較し、相違点を表示させる事ができます。
同じ様な機能を持つfcというコマンドもあるのですが、そちらはデータをテキストとして 比較するのに対し、compコマンドではバイナリで比較を行います。
バイナリって何?何て思った方もおられるかもしれませんが、 それについてもコマンドオプションなどと一緒に説明していますので、興味のある方は読んでみてください。

このページのトップへ

以下は、compの書式とオプションの一覧です。
sort [ファイル名1] [ファイル名2] [/d] [/a] [/l]
 [/n=行数] [/c] [/off[line]]
ファイル名1 比較する最初のファイル名を指定
ファイル名2 比較する2番目のファイル名を指定
/d 相違点を10進数で表示(デフォルトでは16進数で表示する)
/a 相違点をASCII文字で表示
/l 相違する行の行番号を表示(デフォルトではデータの先頭からのバイト数で表示する)
/n=行数 各ファイルの先頭から指定した行数だけを比較。各ファイルのサイズが異なる場合でもコマンドを実行する事ができる
/c ファイルを比較する際、ASCII文字の大文字・小文字を区別しない
/off[line] オフライン属性が設定されたファイルもスキップしない
compは、2つのファイルもしくはファイルセット(ファイルの集合体) の内容を比較し、相違点があれば表示するコマンドです。 相違点は10箇所まで表示され、その後コマンドが終了します。 10箇所を超える分は表示されません。
このcompと同様の機能を持つfcコマンドがテキストで比較を行うのに対し、 compバイナリで比較を行うという特徴があります。
バイナリとは、二進数の・・という意味を持ち、 一般的にはテキスト以外のデータ・・コンピュータが処理できる形式のファイルやデータ などを指します。
これらはバイナリデータ・バイナリファイルなどと呼ばれ、 人が読んで理解する事のできない画像や動画等のファイル、 また実行形式のプログラムなどがそれにあたります。
逆に、テキストとは人が読んで理解する事が出来るデータを指しています。
compは、このようなバイナリファイルとして 同一であるか否かを調べるコマンドで、単純にテキストの比較を行いたい場合には fcコマンドを使用します。
このページのトップへ
通常、比較を行う2つのファイルは同一サイズである必要があり、 ファイルサイズが異なる場合には「/n」オプションを指定しなくてはなりません。
この「/n」は 各ファイルの先頭から指定した行数だけを比較するオプションで、 このオプションを指定して実行した場合、「/n=行数」 に指定したデータの範囲内で比較を行う事ができます。
C:¥>comp sam1.txt sam2.txt /n=7 ←先頭から7行目までのデータを比較
また、compコマンドを単独(引数なし)で実行した場合は対話形式の処理となります。 各パラメータやオプションの入力を促されるので、各指示に従って入力していきます。
C:¥>comp
比較する最初のファイルの名前: sam1.txt
比較する 2 番目のファイルの名前:
さらにこのcompコマンドでは、
ファイルセット(ファイルの集合)の内容を比較の対象とする事ができます。
ファイル名1にはドライブ名またはディレクトリ名を指定、 またファイル名2にもドライブ名またはディレクトリ名を指定します。
このようにドライブやディレクトリのみを指定し、ファイル名を省略した場合は 「*.*」が指定されたのと同じ事になるため、 そのドライブ、もしくはディレクトリ内の全てのファイルが比較対象となります。
よって、ファイル名1に指定したドライブまたはディレクトリ内の各ファイルと、 ファイル名2に指定したドライブまたはディレクトリ内の各ファイルで、 一致する名前のファイル同士が比較されます。
C:¥>comp aaaaa ddddd
aaaaa¥a.txt と ddddd¥a.txt を比較しています...
ファイルのサイズが違います。

aaaaa¥comp1.txt と ddddd¥comp1.txt を比較しています...
ファイルに違いはありません

aaaaa¥comp2.txt と ddddd¥comp2.txt を比較しています...
ファイルに違いはありません

ほかのファイルを比較しますか (Y/N)?
このページのトップへ

では、例を挙げて使用方法をみていきます。
以下のcomp1.txtcomp2.txtをサンプルファイルとして使用します。
compの使用例
comp1.txt

aiueo
あいうえお
さしすせそ
12345
かきくけこ
12345
comp2.txt

aiueo
あいうえお
さしすてそ
12345
かきくけこ
02345
このページのトップへ
まずはじめに、サイズの異なるファイルをcompで比較してみます。
compの使用例
C:¥>comp comp1.txt comp2.txt
サイズの異なるcomp1.txtcomp2.txtを比較しようとすると・・
compの使用例
比較が行われませんでした。
続いて他のファイルの比較を行うかを尋ねられるので、 「n」を入力してコマンドを終了させています。
comp1.txt と comp2.txt を比較しています...
ファイルのサイズが違います。

ほかのファイルを比較しますか (Y/N)? n

C:¥>
このページのトップへ

では次は、「/n=行数」を指定して、 サイズの異なるファイルを比較してみます。
compの使用例
C:¥>comp comp1.txt comp2.txt /n=6
/n=行数」オプションを指定すると、 各ファイルの先頭から指定された行数までのデータを比較する事ができます。
通常compでは、比較するファイルのサイズは同一でなくてはなりませんが、 このオプションを指定すると、異なるサイズのファイル同士でも比較を行う事ができます。
compの使用例
相違点がファイルデータの先頭から順に表示されていきます。
相違点の表示は10箇所までしか表示されません。
また、相違点はデフォルトでは16進数で表示されます。
comp1.txt と comp2.txt を比較しています...
行 3 で比較エラーがあります
ファイル1 = B9
ファイル2 = C4
行 4 で比較エラーがあります
ファイル1 = 82
ファイル2 = 31
行 4 で比較エラーがあります
ファイル1 = 50
ファイル2 = 32
行 4 で比較エラーがあります
ファイル1 = 82
ファイル2 = 33
行 4 で比較エラーがあります
ファイル1 = 51
ファイル2 = 34
行 4 で比較エラーがあります
ファイル1 = 82
ファイル2 = 35
行 4 で比較エラーがあります
ファイル1 = 52
ファイル2 = D
行 4 で比較エラーがあります
ファイル1 = 82
ファイル2 = A
行 4 で比較エラーがあります
ファイル1 = 53
ファイル2 = 82
行 4 で比較エラーがあります
ファイル1 = 82
ファイル2 = A9
不一致の数が 10 に達しました - 比較を終了します

ほかのファイルを比較しますか (Y/N)? n

C:¥>
このページのトップへ

次はcompコマンドを単独で実行させてみます。
※サンプルとして見やすいようにcomp1.txtcomp2.txtの中身を以下のように少し短く変えてみました。
comp1.txt comp2.txt
comp1.txt

aiueo
あいうえお
さしすせそ
12345
comp2.txt

aiueo
あいうえお
さしすてそ
02345
このページのトップへ
compの使用例
C:¥>comp
compを単独で実行すると・・・
compの使用例
C:¥>comp
比較する最初のファイルの名前: comp1.txt
比較する 2 番目のファイルの名前: comp2.txt
オプション: /n=4
オプション: /a
オプション:
このようにファイル名やオプションを尋ねられるので、続けて入力していきます。
ここでは「/n=行数」と「/a」オプションを指定。 /n=行数はファイルの先頭から指定された行数までのデータを比較し、 /aは相違点をテキストで表示します。
入力し終えたら実行。
compの使用例
相違点が2点、テキストで表示されました。
comp1.txt と comp2.txt を比較しています...
行 3 で比較エラーがあります
ファイル1 = 
ファイル2 = 
行 4 で比較エラーがあります
ファイル1 = 1
ファイル2 = 0
ほかのファイルを比較しますか (Y/N)? n

C:¥>
このページのトップへ

最後にファイルセット(ファイルの集合)を比較します。
compの使用例
C:¥>comp ¥aaaaa ¥ddddd
aaaaaディレクトリ内の全てのファイルと、 dddddディレクトリ内の全てのファイルを比較。
compの使用例
それぞれcomp1.txtcomp2.txtは 相違点なし、a.txtのみ相違が認められました。
¥aaaaa¥a.txt と ¥ddddd¥a.txt を比較しています...
ファイルのサイズが違います。

¥aaaaa¥comp1.txt と ¥ddddd¥comp1.txt を比較しています...
ファイルに違いはありません

¥aaaaa¥comp2.txt と ¥ddddd¥comp2.txt を比較しています...
ファイルに違いはありません

ほかのファイルを比較しますか (Y/N)? n

C:¥>
このページのトップへ

以上でcompの説明は終了です。
このコマンドは、例えばバックアップのデータと バックアップ元のデータが等しいかどうかを検証する時などに利用できると思います。
なお上でも書きましたが、 compと似た機能を持つfcは通常はテキストの比較を 行うコマンドで、このcompはバイナリの比較を行います。 ※オプションを指定する事でfcでもバイナリの比較を行う事ができます。
fcコマンドについては、また後々ご紹介いたします。
ちなみにcompははWindows 2000より前のDOSにはありません
では、また次回も宜しくお願い致します。
このページのトップへ
バイナリとは
16進数

※キーマンズネットのIT単語帳ページへ飛びます。
様々なIT専門用語の意味を詳しく知る事ができます。
サイト上の情報利用により生じた損害等には一切責任を持ちません
2009.10.14 Wednesday | 初心者でも簡単コマンドプロンプト | comments(0) | trackbacks(0) | 記事URL
▲PAGETOP
同カテゴリーの記事 最新5件
Comment:
Add a comment:











※コメントは管理者が承認後表示されます。
Trackback:
http://shop.denkaseihin.com/trackback/606
※記事と関連性が低い等、管理人が不適当と判断したものについては削除させて頂きます。
新着記事
CATEGORY
まめ知識
COMMENT
  • 巨大なサイズのファイルも一瞬で削除出来るコマンド del
    denkaseihin (04/15)
  • 巨大なサイズのファイルも一瞬で削除出来るコマンド del
    原田 (04/14)
  • HPの h8-1080jpレビュー 内蔵GPU〜GTX580まで可のSandy Bridge搭載マシン
    denkaseihin (09/18)
  • HPの h8-1080jpレビュー 内蔵GPU〜GTX580まで可のSandy Bridge搭載マシン
    ヨーイチ (09/18)
  • HPの h8-1080jpレビュー 内蔵GPU〜GTX580まで可のSandy Bridge搭載マシン
    denkaseihin (09/14)
  • HPの h8-1080jpレビュー 内蔵GPU〜GTX580まで可のSandy Bridge搭載マシン
    MN (09/13)
  • Firefoxでcookieが保存されないという現象が発生したら
    denkaseihin (10/28)
  • Firefoxでcookieが保存されないという現象が発生したら
    KEKE (10/27)
SMTWTFS
    123
45678910
11121314151617
18192021222324
252627282930 
<< June 2017 >>
RSS
ARCHIVES
MOBILE
qrcode
LINK

Copyright © 2005 - denkaseihin. All Rights Reserved.