比较两个文件并显示它们之间的差异。
MS-
DOS命令语法
fc [/a] [/c] [/l] [/lbn] [/n] [/t] [/w] [/nnnn] [drive1:][path1]filename1 [drive2:][path2]filename2
MS-
DOS命令参数
/a压缩 ASCII 比较的输出结果。fc 只显示每组差异中的第一行和最后一行,而不是显示所有不同的行。/b以二进制模式比较文件。fc 逐字节比较两个文件,并且在找到不匹配后将不尝试重新同步文件。这是包含如下文件扩展名的比较文件的默认模式:.exe, .com, .sys, .obj, .lib,或 .bin./c忽略字母大小写。/l以 ASCII 码模式比较文件。Fc 逐行比较两个文件,并且在找到不匹配时将尝试使重新同步。这是比较文件的默认模式,除了具有如下文件扩展名的文件之外:.exe, .com, .sys, .obj, .lib,或 .bin./lbn为内部行缓冲区设置行的 n 数量。默认的行缓冲区长度为 100 行。如果比较的文件包含超过此数目的相邻不同行,fc 将取消比较。/n显示 ASCII 比较过程中的行号。/t防止 fc 将制表符转换为空格。默认的操作是将制表符当作空格处理,在每八个字符位置停顿一下。/u将文件作为 Unicode 文本文件进行比较。/w比较过程中压缩空白空间(制表位和空格)。如果行包含许多连续的空格和制表符,/w 将把这些字符作为一个空格处理。在与 /w 命令行选项一起使用时,fc 忽略(并且不比较)行首和行尾处的空格。/nnnn指定在 fc 考虑要重新同步的文件之前必须匹配的连续行数。如果文件中匹配的行数少于 nnnn,fc 将匹配行显示为不同。默认值为 2。[drive1:][path1]filename1指定要比较的第一个文件的位置和名称。Filename1 为必需。[drvie2:][path2]filename2指定要比较的第二个文件的位置和名称。Filename2 为必需。/?在命令提示符显示帮助。MS-
DOS命令注释
报告 ASCII 比较的文件之间的差异用 fc 进行 ASCII 比较时,fc 按如下顺序显示两个文件之间的差异:
第一个文件的名称
文件之间存在差异的 filename1 的行。
两个文件中匹配的第一个行。
第二个文件的名称
filename2 的不同的行
匹配的第一个行
使用 /b 进行二进制比较/b 显示二进制比较期间找到的不匹配项,如下所示:
xxxxxxxx:yy zz
xxxxxxxx 的值为每对字节指定相对的十六进制地址,从文件的开头度量。地址起始于 00000000。十六进制值 yy 和 zz 分别代表了 filename1 和 filename2中不匹配的字节。
使用通配符可以在 filename1 和 filename2中使用通配符(* 和 ?)。如果在 filename1中使用通配符,fc 将比较所有指定的文件和由 FileName 指定的文件。如果在 filename2中使用通配符,fc 将从filename1中使用相应的值。
使用
内存在比较 ASCII 文件时,fc 使用内部缓冲区(足够容纳 100 行)作为存储区。如果文件比缓冲区大,fc 将比较可以载入缓冲区的内容。如果 fc 在文件已加载的部分没有找到匹配,则停止并显示下列消息:
Resynch failed.Files are too different.
在比较大于可用内存的二进制文件时,fc 完整比较两个文件,使用磁盘的下一部分覆盖内存中的部分。输出和完全装入内存的文件内容相同。
MS-
DOS命令范例
要对两个名为 Monthly.rpt 和 Sales.rpt 的文本文件进行 ASCII 比较并以缩略格式显示结果,请键入:
fc /a monthly.rpt sales.rpt
要对两个
批处理文件 Profits.bat 和 Earnings.bat 进行二进制比较,请键入:
fc /b profits.bat earnings.bat
出现类似于如下内容的结果:
[pre]00000002: 72 4300000004: 653A0000000E: 56 9200000012: 6D 5C00000013: 0D 7C00000014: 0D 0A00000015: 0A 0D0000001E:437A0000001F:09 0A00000022: 72 44.........000005E0: 00 61000005E1: 00 73000005E2: 00 73000005E3: 00 69000005E4: 00 67000005E5:00 6E000005E6:00 6D000005E7: 00 65000005E8:00 6EFC:Earnings.bat longer than Profits.bat[/pre]如果 Profits.bat 和 Earnings.bat 文件相同,fc 将显示下列消息:
FC:no differences encountered
要将当前目录中的每个 .bat 文件与文件 New.bat 进行比较,请键入:
fc *.bat new.bat
要将驱动器 C 上的文件 New.bat 与驱动器 D 上的文件 New.bat 比较,请键入:
fc c:new.bat d:*.bat
要将驱动器 C 根目录中的每个
批处理文件与驱动器 D 根目录中名称相同的文件进行比较,请键入:
fc c:*.bat d:*.bat