7

我正在尝试一些我在 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

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

我对此完全陌生,环顾四周,似乎我可以编写一个批处理文件(.bat),基本上就像一个 UNIX 脚本一样。

很抱歉我的基本问题,但我已经用谷歌搜索了这个问题,但似乎无法弄清楚。

4

3 回答 3

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.
于 2014-02-06T11:29:44.103 回答
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

源头

于 2012-10-24T08:51:23.090 回答
0

您可能想检查一下:

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

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

于 2012-10-24T09:14:23.017 回答