我正在尝试运行一个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
任何人都有任何想法?
答案 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
字面值。