我需要比较两个文本文件并找出它们之间的区别。基本上,我有一个输入文件(input.txt),该文件将由批处理作业处理,而我的批处理将记录该作业成功运行的输出(successful.txt)。
简单来说,我需要找出input.txt和success.txt(input.txt-successful.txt)之间的区别,并且我正在考虑使用findstr。似乎很好,但我不了解其中一部分。它始终在输出中包含我的input.txt的最后一行。您可以在下面的示例中看到这一点。请注意,在我的input.txt的最后一行之后没有空格或换行符。
在下面的示例中,您可以看到这server1,db1
两个文件上都存在该行,但仍在输出中列出。(它始终是input.txt的最后一行)
D:\Scripts\dummy>type input.txt
server2,db2
server3,db3
server10,db10
server4,db4
server1,db11
server10,schema11
host1,sch2
host11,sql2
host11,sql3
server1,db1
D:\Scripts\dummy>type successful.txt
server1,db1
server2,db2
server3,db3
server4,db4
server10,db10
host1,sch2
host11,sql2
host11,sql3
D:\Scripts\dummy>findstr /vixg:successful.txt input.txt
server1,db11
server10,schema11
server1,db1
我究竟做错了什么?
干杯,G
我可以通过在的最后一行之后删除换行来重现您的结果input.txt
,因此解决方案1是在的末尾添加一个换行input.txt
。由于您似乎说input.txt
没有终端换行符,因此添加一个就可以解决此问题;findstr的行为符合预期,因为它在换行符终止的行上起作用。
解决方案2将是
type input.txt|findstr /vixg:successful.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句