使用批处理文件检查两个文本文件是否具有相同的内容

时间:2014-01-18 14:09:01

标签: batch-file

我有两个文本文件。我想检查两个文件是否具有相同的内容。 例如:文件1有:

1 232
32 14
222 4 

文件2有:

1 232
32 14
222 4

然后输出"正确"否则"不正确"。

2 个答案:

答案 0 :(得分:2)

fc file1 file2 >nul&&echo Correct||echo Incorrerct

如果没有找到差异,FC命令将返回成功(ERRORLEVEL 0),如果发现差异,则返回错误(ERRORLEVEL 1)。我将输出重定向到NUL,因为您只想知道文件是否相同 - 您不需要查看差异列表。

有许多选项可以修改比较类型。这是文档:

<强> FC

比较两个文件并显示它们之间的差异。

语法

fc [/a] [/b] [/c] [/l] [/lbn] [/n] [/t] [/u] [/w] [/nnnn] [drive1:][path1]filename1 [drive2:][path2]filename2

参数

  • /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:指定要比较的第一个文件的位置和名称。文件名1是必需的。

  • [drive2:][path2]filename2:指定要比较的第二个文件的位置和名称。文件名2是必需的。

  • /?:在命令提示符下显示帮助。

答案 1 :(得分:1)

您可以使用“fc”命令执行此操作

  

fc file1.txt file2.txt

它会报告发现的差异或通知您有关文件匹配的信息。