欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Comp 逐字节地比较两个文件或几组文件的内容

程序员文章站 2022-07-04 17:09:25
comp 逐字节地比较两个文件或几组文件的内容。comp 可以比较相同驱动器或不同驱动器上的文件以及相同目录或不同目录中的文件。comp 比较文件时,它...
comp
逐字节地比较两个文件或几组文件的内容。comp 可以比较相同驱动器或不同驱动器上的文件以及相同目录或不同目录中的文件。comp 比较文件时,它将显示文件的位置和文件名。如果在不含参数的情况下使用,则 comp 提示输入要进行比较的文件。

语法
comp [data1] [data2] [/d] [/a] [/l] [/n=number] [/c]

参数
data1 
指定要比较的第一个文件或文件集的位置和名称。使用通配字符(* 和 ?)可以指定多个文件。 
data2 
指定要比较的第二个文件或文件集的位置和名称。使用通配字符(* 和 ?)可以指定多个文件。 
/d 
用十进制格式显示差别。(默认格式为十六进制。) 
/a 
将差别显示为字符形式。 
/l 
显示出现差别的行编号,而不显示字节偏量。 
/n=number 
比较两个文件的第一个 number,即使两个文件的大小并不相同。 
/c 
执行不区分大小写的比较。 
/? 
在命令提示符显示帮助。 
注释
比较相同名称的文件 
如果要比较的文件位于不同的目录或不同的驱动器,则它们可以有相同的文件名。如果不为 data2 指定文件名,则 data2 的默认文件名与 data1 中的文件名相同。可以使用通配字符(* 和 ?)来指定文件名。

data1 和 data2 的特殊情形 
如果省略 data1 或 data2 的必要组件或者省略 data2,comp 将提示您输入缺少的信息。如果 data1 只包含驱动器号或没有文件名的目录名,则 comp 将对指定目录中的所有文件和 data2 中指定的文件进行比较。如果 data2 只包含驱动器号或目录名,则 data2 的默认文件名与 data1 中的相同。

comp 命令如何标识不匹配信息 
在比较期间,comp 会显示消息,标识两个文件中不同信息的位置。每条消息都表明了不相等字节的偏移内存地址和字节本身的内容(除非指定了 /a 或 /d 命令行选项,否则都用十六进制记数法表示)。消息按以下格式显示: 

compare error at offset xxxxxxxx

file1 = xx

file2 = xx 

经过 10 个不相等的比较后,comp 命令终止了文件对比并显示出下列信息: 

10 mismatches - ending compare

comparing files of different sizes 
除非指定 /n 命令行选项,否则不能比较不同大小的文件。如果文件大小不同,comp 将显示下列消息: 

files are different sizes

compare more files (y/n)? 

按 y 比较其他文件对。按 n 停止 comp 命令。

如果按 y 来响应提示,则 comp 在其所作的每个比较中都将使用在命令行中指定的任意命令行选项,直到按下 n 或重新键入命令。

在比较不同大小的文件时,使用 /n 命令行选项将仅比较每个文件的第一部分。

按顺序比较文件 
如果使用通配符(* 和 ?)指定多个文件,comp 查找与 data1 匹配的第一个文件,并将它与 data2 中的相应文件(如果有的话)进行比较。comp 命令报告比较结果,然后对每个匹配 data1 的文件进行相同的操作。完成后,comp 显示下列消息: 

compare more files (y/n)? 

要比较其他文件,请按 y。comp 命令提示符您键入新文件的位置和名称。要停止比较,请按 n。当按下 y 时,comp 将提示您输入要使用的命令行选项。如果未指定任何命令行选项,comp 将使用以前指定的命令行选项。

如果 comp 无法找到文件 
如果 comp 不能找到指定的文件,将使用消息提示您决定是否要比较其他文件。

范例
要将目录 c:\reports 的内容与备份目录 \\sales\backup\april 进行比较,请键入:

comp c:\reports \\sales\backup\april 

要比较 \invoice 目录中文本文件的开头 10 行并以十进制格式显示结果,请键入:

comp \invoice\*.txt \invoice\backup\*.txt /n=10 /d

xox