比较两个文件并显示它们之间的不同。
语法 :
为了做一ASCII比较,要用下面的语法:
| FC [/A] [/C] [/L] [/LBn] [/N] [/T] [/W] [/nnnn][drive1:][path1]filename1 [drive2:][path2]filename2 |
为了做二进制比较,可用下面的语法:
| FC /B [drive1:][path1]filename1 [drive2:][path2]filename2 |
参数:
[drive1:][path1]filename1
指定第一个需比较的文件的位置和名字。
[drive2:][path2]filename2
指定第二个需比较的文件的位置和名字。
开关项:
/A
简化ASCII比较的输出。FC只显示每一不同块的第一行及最后一行,而不是显示出所有的不同行。
/C
忽略字母的大小。
/L
以ASCII方式对文件进行比较。FC一行一行地比较两文件,并在发现不同之处之后试图使两个文件同步起来。对于扩展名不是.EXE、.COM、.SYS、.OBJ、LIB或.BIN的文件,这是默认方式。
/LBn
设置内部行缓冲区的行数。行缓冲区的默认长度为100行。如果比较的文件中不同的行连续超过了此数,那么FC将取消比较。
/N
在ASCII比较中显示行号。
/T
不把制表符展开为空格。默认情况下把制表符作为空格来处理。它相当于8个字符的位置。
/W
在比较期间对空白空间(制表符及空格)进行压缩。如果一行中包含了多个连续的空格或制表符,则/W开关将把这些字符作为单一的空格来处理。当使用了/W开关时,FC将忽略(不作比较)一行中开头和结尾的空白。
/nnnn
指定在FC认为同步前必须匹配的连续行数。如果文件中匹配的行数少于此数,则FC将按不同的行来显示匹配的行。nnn的默认值为2。
/B
以二进制方式比较文件。FC一个字节一个字节地比较两个文件,且在发现不匹配之后不再对文件进行同步。对于扩展名为.EXE、.COM、.SYS、.OBJ、.LIB、.BIN的文件,这是默认方式。
报告ASCII比较两个文件间的不同
当你用FC进行ASCII比较时,MS-DOS将报告两个文件间的不同之处:首先显示第一个文件的名字,然后再显示两个文件中相同的最后一行,然后再显示filename1中两个文件间不同各行,最后再显示两个文件中相同的第一行。而后MS-DOS再显示第二个文件的名字,随后再显示相同的最后一行,随后再显示filename2中不同的各行,然后再显示相同的下一行。
用/B开关来进行二进制比较
MS-DOS在二进制比较中将用下列格式来报告所发现的不同之处:
********:yy zz
********的值指定了字节对的相对十六进制地址,它是以文件的头为基准的。起始地址为00000000;十六进制的yy和zz分别代表了filename1和filename2中的不同字节。
使用通配符
在用FC命令指定的各文件名中都可用通配符(*及?)。如果在filename1使用了通配符,则FC将把所有指定的文件与同filename2所指定的文件相比较。如果在filename2中使用了通配符,那么FC将使用filename1中的相应值。
FC如何使用系统内存
当比较ASCII文件,FC将内部缓存(足够装下100行)用作存储区,如果文件比此缓存大,那么FC只对所能装入缓存的部分进行比较。如果在文件的装载部分中没有发现一个相同的地方,那么FC将停止比较而显示下列信息:
"Resynch failed. Files are too different."
当比较二进制文件时,如果文件的大小大于可用内存,那么FC仍将对两个文件进行彻底的比较,FC将用磁盘中下一部分的内容来覆盖内存中的部分。比较结果的输出与大小小于可用内存的文件输出完全一样。
假设你想对名为MONTH.RPT及SALES.RPT的两个文本文件进行ASCII比较,并且要用简化格式来显示比较的结果,为此,要键入下面的命令:
fc /a monthly.rpt sales.rpt
为了对两名为PROFITS.BAT及EARNINGS.BAT的批处理文件进行二进制比较,要输入的命令:
fc /b profits.bat earnings.bat
此命令的结果如下:
00000002: 72 43
00000004: 65 3A
0000000E: 56 92
00000012: 6D 5C
00000013: 0D 7C
00000014: 0D 0A
00000015: 0A 0D
0000001E: 43 7A
0000001F: 09 0A
00000022: 72 44
..。
..。
..。
000005E0: 00 61
000005E1: 00 73
000005E2: 00 73
000005E3: 00 69
000005E4: 00 67
000005E5: 00 6E
000005E6: 00 6D
000005E7: 00 65
000005E8: 00 6E
FC:EARNING.BAT比 PROFITS.BAT长。
如果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