.bat文件来比较两个文本文件并输出差异

我尝试了一些我在UNIX上成功完成的新function,但不知道如何在Windows上完成。

所以我保存一个文本文件,比如test1.txt,12小时后将test2.txt(test1.txt与12小时内添加的变更,几乎保证在文件的末尾)比较test1.txt然后将文本差异输出到第三个文件diff.txt

1 action 2 action 3 action 4 action 5 action 

和test2.txt看起来像

 1 action 2 action 3 action 4 action 5 action 6 action 7 action 8 action 

那么输出到第三个文件diff.txt将如下所示:

 6 action 7 action 8 action 

只添加了文本,没有关于行或比较的信息,只是差异的基本输出。

我完全是新来的,看了看周围,似乎我可以写一个batch file(.bat),基本上只是作为一个UNIX脚本会。

对不起,我的基本问题,但我GOOGLE了这个问题,似乎无法弄清楚。

最简单和最快的方法是使用findstr命令,它会比较并返回结果到新文件这里的脚本

 findstr /vixg:Z:\misc\test1.txt Z:\misc\misc\test2.txt > Z:\misc\misc\test3.txt findstr /vixg:<source file> <target file> > outputfile 

这里

 /v : Prints only lines that do not contain a match. /i : Specifies that the search is not to be case-sensitive. /x : Prints lines that match exactly. /g: file : Gets search strings from the specified file. 

你可以尝试这样的事情:

  @echo off :main fc c:\filename r:\filemame > nul if errorlevel 1 goto error :next echo insert next CD pause goto main :error echo failed check 

从源头上

你可能想检查一下:

http://gnuwin32.sourceforge.net/packages.html

有* nix实用程序的端口,其中包括差异,所以你不必重新发明轮子。