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


当前回答

在windows中,相当于diff命令的是fc(文件比较)命令。

以下是基本的步骤: 1. 将这两个文件保存在一个文件夹中(例如file1.html和file2.html) 2. 发射命令提示符 3.输入fc file1Location file2Location

已经找到了一个详细的教程相同:

http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-prompt/

其他回答

使用COMP得到错误的原因是该实用程序假定您正在比较的文件具有相同的大小。为了克服这个问题,你可以使用'/n'选项来指定你想要比较的行数。(输入'comp /?在命令行中。 所以你的命令看起来像这样:

C:\>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /c 

这应该解决你的问题,如果你想坚持使用COMP。但这将是一个真正的大文件的问题。

虽然comp是一个选择,但我觉得它是原始的,FC是一个更好的选择。如果你经常需要一个文件比较工具,你可以使用FORFILES和FC一起制作一个非常好的文件比较工具。

FC用于ref:

C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"

有很多可用的选项,你可以通过“fc /?” 希望这能有所帮助

还有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本身!