我知道有一個帖子與此類似:here。
我試過用上面提到的comp
命令,但是如果我有兩個文件,一個是數據「abcd」,另一個是數據「abcde」,它只是說文件大小不同。我想知道它們究竟有什麼不同。在Unix中,如果我有類似「abd」和「abc」的內容,簡單差異會告訴我哪個行和列,windows中的comp命令有效。否則。任何想法我可以用這個?什麼是diff命令的Windows等價物?
回答
運行此在CMD殼或批處理文件:
FC file1 file2
FC
也可用於比較二進制文件:
FC /B file1 file2
Winmerge有command line utility,可能值得一試。
此外,您也可以根據需要使用它的圖形部分。
雖然這不是一個內置的Windows實用程序,但我強烈建議它 - 它是開源的,重量輕,並且以我的經驗無bug。 –
@ david.barkhuizen他們嚴格地在sourceforge上託管他們的文件太糟糕了。 – Mo2
好了,在Windows上我愉快地運行diff
和許多其他的GNU工具。你可以用cygwin來做,但我個人更喜歡GnuWin32,因爲它是一個更輕的安裝體驗。
所以,我的回答是,Windows相當於diff
,不過是diff
本身!
Cygwin的基本安裝似乎沒有包含diff。我需要安裝哪些附加軟件包才能獲得它? –
我不推薦cygwin。我會使用差異的原生Win32端口 –
@WarrenDew您需要的Cygwin軟件包是'diffutils'。請參閱https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fdiffutils%2Fdiffutils-3.3-2&grep=diff –
fc。 fc比Cygwin的差異更好地處理大文件(> 4 GB)。
還有Powershell(它是Windows的一部分)。它不是快速但靈活,這是基本的命令。如果您需要更好的格式,人們已經爲它編寫了各種cmdlet和腳本。
PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)
的Windows不是一部分,但如果你是使用Visual Studio的開發人員,它帶有WinDiff的(圖形)
但我個人最喜歡的是BeyondCompare,售價$ 30
另一種選擇是從http://git-scm.com/downloads下載並安裝git。然後,將Git \ bin \的路徑添加到PATH變量中。這不僅會給你diff,還會給你很多其他的linux命令,你可以在windows命令行中使用它們。
這就是我所做的 –
這種方法對我的團隊最有效。安裝GIT非常簡單。這使您可以像Linux一樣運行精確的Diff命令行可執行文件。 – CoryCowgill
@firelight - 謝謝你的回答。您可以詳細說明您的意思:「然後,將路徑添加到Git \ bin \ PATH變量中。」 – BKSpurgeon
您收到COMP錯誤的原因是該實用程序假定您正在比較的文件具有相同的大小。要解決這個問題,您可以使用第'/n'
選項,您可以使用該選項指定要比較的行數。 (見比較支持的選項通過在命令行上鍵入'comp /?'
所以你的命令如下所示:。
C:\>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /c
,如果你想堅持使用COMP這應該解決您的問題,但是這將是一個問題真的很大的文件。
雖然comp
是一個選項,但我覺得它是原始的,FC
是一個更好的選擇。如果您需要頻繁使用0123com和FC
,則可能會使用一個非常好的filecompare實用程序。
FC採用這種方式對於裁判:
C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"
有許多可供選擇,您可以通過'fc /?'
希望看到這有助於
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
包含更改的數據,即只有一個line #### 09
**/A **僅更改塊的第一行和最後一行添加或更新用戶變量中的PATH變量**/N **顯示行號 – Lukas
相當於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/
我不知道下面的工具是你需要什麼exatly。但我喜歡使用特定的文件,一些在線工具。不管操作系統如何,我都可以使用它。下面是一個例子:diffchecker.com
但是對於我的需求,我猜想跟蹤項目文件的更改和日誌的最佳工具是GIT。如果你在一個團隊中工作,你可以在你的服務器上進行一些回購,或者與Bitbucket或Github一起使用。
希望它有助於某人。
我發現了一個輕量級的Windows圖形軟件,似乎在缺少diff
命令時很有用。它可以解決我所有的問題。
- 1. 什麼是Application.StartupPath的Windows CE等價物?
- 2. 什麼是Windows CE的kbhit等價物?
- 3. 什麼是Javascript的Date.UTC命令的PHP等價物?
- 4. Java的-verbose:gc命令行選項的.NET等價物是什麼?
- 5. 什麼是EC2的運行命令的AWS SDK等價物
- 6. 什麼是使用VBScript批量ECHO命令的等價物?
- 7. 什麼是Curl POST命令的Angular JS等價物?
- 8. 這個Sikuli命令的Java等價物是什麼?
- 9. Windows等價於帶ed輸出的unix diff命令
- 10. 等價命令$ USER IN windows命令行
- 11. 什麼是Python的os.walk的等價物?
- 12. 什麼是PHP的preg_quote的等價物?
- 13. 什麼是Hub的HttpContext.GetOwinContext()的等價物?
- 14. MessageFormat的Pattern.quote()的等價物是什麼?
- 15. 什麼是Process.Start的VB 6等價物?
- 16. 什麼是android中的dataWithContentsOfURL等價物?
- 17. rlwinm的C++等價物是什麼? (PowerPC)
- 18. 什麼是HttpContext.Current.Request.RawUrl的WCF等價物?
- 19. RDFlib中rdf:ID的等價物是什麼?
- 20. Monotouch中的CGPDFDocumentGetCatalog等價物是什麼?
- 21. 什麼是'document.getElementsByClassName'的Prototype 1.6.0+等價物?
- 22. 什麼是C++中的instanceof等價物?
- 23. 什麼是OS X的UIGraphicsGetCurrentContext()等價物?
- 24. 什麼是DB2的Varchar(Max)等價物?
- 25. 什麼是VC7中的strtok_s等價物?
- 26. Unity 5.3:什麼是UnitEngine.Application.loadedLevel的等價物?
- 27. 什麼是EventWaitHandle的Objective C等價物?
- 28. 什麼是PHP var_dump的.NET等價物?
- 29. 什麼是ChrW(e.KeyCode)的C#等價物?
- 30. 什麼是.NET TypeCode的Java等價物?
輝煌!謝謝! :) – wittythotha
你如何做到這一點與兩個文件夾中的所有更改的文件?比如,我將folder1的內容與folder2的內容進行比較:folder2中的任何更改的行顯示出來了? –
@ Wolfpack'08「:'FC path1 \ * FC path2 \ *'會比較文件夾'path1'和'path2'中的所有文件,只要它們(文件)具有相同的名稱;如果存在名稱不匹配的文件,FC會報告一個丟失的文件,但僅用於在第二個文件夾中找不到的第一個文件夾的文件,而不是反過來,爲了捕獲所有的不匹配,可能需要一種不同的技術 –