我知道有一个类似的帖子:在这里。 我尝试使用它提到的comp命令,但如果我有两个文件,一个具有“abcd”这样的数据,另一个具有“abcde”这样的数据,它只是说文件大小不同。我想知道它们到底有什么不同。在Unix中,简单的diff告诉我哪行和哪列,如果我有“abd”和“abc”之类的东西,windows中的comp命令就可以工作。没有否则。有什么好办法吗?


当前回答

还有Powershell (Windows的一部分)。它不是很快,但很灵活,这是基本的命令。如果您需要更好的格式,人们已经为它编写了各种cmdlet和脚本。

PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)

不是Windows的一部分,但如果你是Visual Studio的开发人员,它附带WinDiff(图形化的)

但我个人最喜欢的是BeyondCompare,售价30美元。

其他回答

在CMD shell或批处理文件中运行:

FC file1 file2

FC也可以用来比较二进制文件:

FC /B file1 file2

如果你已经在你的机器上安装了git,你可以打开一个git终端,并像往常一样使用Linux diff命令。

在Windows上,我很乐意运行diff和许多其他GNU工具。你可以用cygwin来做,但我个人更喜欢GnuWin32,因为它的安装体验要轻松得多。

所以,我的答案是,Windows中diff的等效程序,正是diff本身!

FC工作在我的情况下,它是没有帮助的,因为我只是想改变的行。而FC提供了额外的数据,如文件名,相同的行和双边比较。

    >fc data.txt data.txt.bak   
    ***** DATA.TXT
    ####09
    ####09
    ####09
    ***** DATA.TXT.BAK
    ####09
    ####08
    ####09

但在我的情况下,我只想要已经改变的行,并希望这些行被导出到不同的文件,没有任何其他头或数据。

所以我使用“findstr”来比较文件:

findstr /V /G:data.txt.bak data.txt >DiffResult.txt

地点:

Data.txt.bak是旧文件的名称

Data.txt是新文件的名称

DiffResult.txt包含被更改的数据,即只有一行####09

我不知道下面的工具是不是你所需要的。但对于特定的文件,我喜欢使用一些在线工具。这样,无论操作系统如何,我都可以使用它。这里有一个例子:diffchecker.com

但对于我的需求,我想跟踪项目文件更改和日志的最佳工具是GIT。如果你在一个团队中工作,你可以在你的服务器上进行一些在线回购,或者与Bitbucket或Github一起使用。

希望它能帮助到一些人。