我知道有一个类似的帖子:here
我尝试使用它提到的comp
命令,但如果我有两个文件,一个有“abcd”等数据,另一个有数据“abcde”,它只是说文件大小不同。我想知道他们究竟有什么不同。在Unix中,简单的diff告诉我哪个行和列,如果我有“abd”和“abc”之类的东西,windows中的comp命令就可以工作。不是这样。我有什么想法可以用于此吗?
答案 0 :(得分:407)
在CMD shell或批处理文件中运行:
FC file1 file2
FC
也可用于比较二进制文件:
FC /B file1 file2
答案 1 :(得分:29)
好吧,在Windows上,我很高兴地运行diff
和许多其他GNU工具。您可以使用cygwin执行此操作,但我个人更喜欢GnuWin32,因为它的安装体验要轻得多。
所以,我的答案是Windows等价于diff
,而不是diff
本身!
答案 2 :(得分:23)
Winmerge有command line utility可能值得一试。
此外,根据您的需要,您也可以使用它的图形部分。
答案 3 :(得分:14)
另一种方法是从here下载并安装git。然后,将Git\bin\
的路径添加到PATH
变量中。这不仅可以为您提供diff,还可以使用windows命令行中的许多其他linux命令。
您可以通过右键单击计算机并选择属性来设置PATH
变量。然后,您可以单击屏幕左侧的“高级系统设置”。在弹出窗口中,单击Environment Variables,然后使用Git\bin\
答案 4 :(得分:12)
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
答案 5 :(得分:9)
FC。 fc处理大文件(> 4 GBytes)比Cygwin的差异更好。
答案 6 :(得分:9)
还有Powershell(Windows的一部分)。它不是很快但很灵活,这是基本的命令。如果您需要更好的格式化,人们已经为它编写了各种cmdlet和脚本。
PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)
不属于Windows,但如果您是Visual Studio的开发人员,则会附带WinDiff(图形)
但我个人最喜欢的是BeyondCompare,售价30美元。
答案 7 :(得分:4)
DiffUtils可能是你最好的选择。这是Windows等同于差异。
据我所知,没有内置的等价物。
答案 8 :(得分:2)
您在COMP中收到错误的原因是该实用程序假定您要比较的文件大小相同。要克服这个问题,您可以使用'/n'
选项,您可以使用该选项指定要比较的行数。 (通过在命令行上键入'comp /?'
来查看comp支持的选项。
所以你的命令看起来像:
C:\>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /c
如果您想坚持使用COMP,这应该可以解决您的问题。但这对于非常大的文件来说将是一个问题。
虽然comp
是一个选项,但我认为它是原始的,FC
是更好的选择。你可以一起使用FORFILES
和FC
来制作一个非常好的文件比较实用程序,如果你经常需要它。
FC以这种方式用于参考:
C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"
您可以通过'fc /?'
查看许多选项
希望这有帮助
答案 9 :(得分:2)
我发现了一个用于Windows的轻量级图形软件,在缺少diff
命令时似乎很有用。它可以解决我所有的问题。
答案 10 :(得分:0)
与diff命令等效的窗口是fc(File Comapre)命令。
以下是执行此操作的基本步骤:
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/
答案 11 :(得分:0)
如果您已在计算机上安装了git,则可以打开git终端并正常使用Linux diff
命令。