dos环境下的比较文件命令

 

win7帮助

D:\test>fc /?
比较两个文件或两个文件集并显示它们之间
的不同


FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn]
   [drive1:][path1]filename1 [drive2:][path2]filename2
FC /B [drive1:][path1]filename1 [drive2:][path2]filename2

  /A         只显示每个不同处的第一行和最后一行。
  /B         执行二进制比较。
  /C         不分大小写。
  /L         将文件作为 ASCII 文字比较。
  /LBn       将连续不匹配的最大值设置为指定
             的行数。
  /N         在 ASCII 比较上显示行数。
  /OFF[LINE] 不要跳过带有脱机属性集的文件。
  /T         不要将制表符扩充到空格。
  /U         将文件作为 UNICODE 文本文件比较。
  /W         为了比较而压缩空白(制表符和空格)。
  /nnnn      指定不匹配处后必须连续
             匹配的行数。
  [drive1:][path1]filename1
             指定要比较的第一个文件或第一个文件集。
  [drive2:][path2]filename2
             指定要比较的第二个文件或第二个文件集。

 

使用示例:

1、使用两个文件试下各参数定义

a.txt

123
456
789

b.txt

123
111
456

使用命令:

>fc a.txt b.txt

D:\test>fc a.txt b.txt
正在比较文件 a.txt 和 B.TXT
***** a.txt
123
456
***** B.TXT
123
111
456
*****

***** a.txt
789
***** B.TXT
*****

 

> fc /A a.txt b.txt

D:\test>fc /A a.txt b.txt
正在比较文件 a.txt 和 B.TXT
***** a.txt
123
456
***** B.TXT
123
111
456
*****

***** a.txt
789
***** B.TXT
*****

  >fc /B a.txt b.txt

D:\test>fc /B a.txt b.txt
正在比较文件 a.txt 和 B.TXT
00000005: 34 31
00000006: 35 31
00000007: 36 31
0000000A: 37 34
0000000B: 38 35
0000000C: 39 36
>fc /L a.txt b.txt
D:\test>fc /L a.txt b.txt
正在比较文件 a.txt 和 B.TXT
***** a.txt
123
456
***** B.TXT
123
111
456
*****

***** a.txt
789
***** B.TXT
*****
>fc /N a.txt b.txt
D:\test>fc /N a.txt b.txt
正在比较文件 a.txt 和 B.TXT
***** a.txt
    1:  123
    2:  456
***** B.TXT
    1:  123
    2:  111
    3:  456
*****

***** a.txt
    3:  789
***** B.TXT
*****

从上边的例子上,好像看不出有啥区别来。

 

2、两个文件行数不同,但两个文件中部分行的内容是相同的,想找出其中相同的部分

a.txt

123
456
789
abc
a11111

b.txt

123
111
456
a
b
c
d

从两个文件来看,第一行123完全相同,456在两个文件中都存在但所在行号不同。

如果是同行比较呢?

如果只是比较两个文件,