将2个txt文件输出到第3个txt文件

时间:2013-05-22 16:54:09

标签: cmd diff filecompare

我正在尝试运行一个bat文件,将1个文件与另一个文件进行比较并输出差异

我尝试过使用gnu diff utilites,fc和无休止的googleing来寻找解决方案,但我似乎无法弄清楚

档案1

C:\Books\Tolkien, J.R.R. - The Adventures Of Tom Bombadil.pdf
C:\Books\test.rtf.epub
C:\Books\w_E_20130215.epub

文件2

C:\Books\test.rtf.epub
C:\Books\w_E_20130215.epub

我希望文件3

C:\Books\Tolkien, J.R.R. - The Adventures Of Tom Bombadil.pdf

任何人都有任何想法?

2 个答案:

答案 0 :(得分:1)

您可以使用DiffUtils中的diff,如下所示:

diff file1.txt file2.txt | findstr /r /c:"^<" /c:"^>" >file3.txt

输出行将以<>开头,具体取决于缺少相应行的文件。如果您还要删除这些指标,请使用以下内容:

for /f "tokens=1*" %a in (
  'diff file1.txt file2.txt ^| findstr /r /c:"^<" /c:"^>"'
) do @echo %b >>file3.txt

如果要在批处理文件中运行,请将%a%b更改为%%a%%b

答案 1 :(得分:0)

FINDSTR /v /b /e /l /g:file2. file1. >file3.

应该产生所需的结果 - file2中缺少file1中的行。

/v说未找到&#39;,/b /e强制完全匹配 - 不是行匹配/l字面值。