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

时间:2012-10-24 08:49:03

标签: windows

我正在尝试在UNIX上成功完成的新功能但不知道如何在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

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

我完全不熟悉这个,看了看,似乎我可以写一个基本上只是作为UNIX脚本的批处理文件(.bat)。

对不起我的基本问题,但我已经用Google搜索了这个问题,似乎无法弄明白。

3 个答案:

答案 0 :(得分:8)

最简单,最快速的方法是使用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.

答案 1 :(得分:1)

您可以尝试这样的事情: -

  @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

来自source

答案 2 :(得分:0)

您可能需要查看此内容:

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

有* nix实用程序的端口,包括一个用于diff的端口,因此您不必重新发明轮子。