読者です 読者をやめる 読者になる 読者になる

コマンドプロンプトでCOMPコマンドを使ってみる

COMPコマンドはファイルの内容をバイナリで比較します。

一般的な使い方としては

COMP 比較するファイル名 比較するファイル名 *1

になります。

以下のテキストがあったとして

TYPE a.txt TYPE comp.txt

COMP a.txt comp.txt

それぞれをバイナリで比較した結果が表示されています。

a.txt comp.txt
d(64) c(63)
e(65) c(63)
あ(A0) か(A9)
い(A2) き(AB)
う(A4) く(AD)
え(A6) け(AF)
お(A8) こ(B1)

2014/08/30 9:51 追記

投稿時点ではバイナリで比較していることが分かっていませんでした。 バイナリエディタで表示したところを追加しておきます。上がa.txt、下がcomp.txtです。

追記ここまで

COMP a.txt b.txt

比較するファイルのサイズが違っていると警告が出ます。

COMP *.txt a.txt

1番目の比較するファイル名にワイルドカードを使うと、2番目に比較するファイルを すべてのファイルと比較します。

COMP *.txt *.txt

2番目に比較するファイル名にもワイルドカードを使うと、全てのファイルを お互いに比較するかと思いきや、同じファイル同士を比較するだけなので意味がありません。

COMP /D a.txt comp.txt

/Dスイッチをつけると、異なる部分が10進数で表示されます。

COMP /A a.txt comp.txt

/Aスイッチをつけると、異なる部分がASCII文字で表示されます。

COMP /L a.txt comp.txt

/Lスイッチをつけると、異なる部分の行番号が表示されます。

COMP /N=3 a.txt comp.txt COMP /N=4 a.txt comp.txt

/N=行数 スイッチをつけると、先頭から行数までの行を比較します。

COMP /C /N=1 a.txt comp.txt COMP /N=1 a.txt comp.txt

/Cスイッチをつけると、比較する文字に対して大文字と小文字の区別がなくなります。 a.txtの1行目をAに変更しましたが、/CスイッチなしだとAとaは異なると判断されています。

スイッチ(詳細についてはCOMP /?を参照)

/D 比較した結果異なる部分を10進数で表示
/A 異なる部分をASCII文字で表示する
/L 異なる部分の行番号を表示する
/N=行数 先頭から行数までを比較する
/C 比較する文字に対して大文字と小文字を区別しない
/OFF
/OFFLINE
オフライン属性のファイルをスキップしない
オフライン ファイルとは - Windows ヘルプ

*1:ヘルプにはデータ1、データ2とありますが、実際にはファイル名の入力を求められます