Wat is het Windows-equivalent van het diff-commando?

Ik weet dat er een bericht is dat lijkt op dit: hier.
Ik heb geprobeerd de opdracht compte gebruiken, zoals vermeld, maar als ik twee bestanden heb, één met gegevens zoals “abcd” en de andere met gegevens “abcde”, zegt het alleen dat de bestanden verschillende groottes hebben. Ik wilde weten waar ze precies verschillen. In Unix vertelt de eenvoudige diff me in welke rij en kolom het comp-commando in Windows werkt als ik zoiets als “abd” en “abc” heb. Niet anders. Enig idee wat ik hiervoor kan gebruiken?


Antwoord 1, autoriteit 100%

Voer dit uit in de CMD-shell of het batchbestand:

FC file1 file2

FCkan ook worden gebruikt om binaire bestanden te vergelijken:

FC /B file1 file2

Antwoord 2, autoriteit 7%

Nou, op Windows gebruik ik graag diffen vele andere GNU-tools. Je kunt het doen met cygwin, maar persoonlijk geef ik de voorkeur aan GnuWin32omdat het een veel lichtere installatie-ervaring is.

Mijn antwoord is dus dat het Windows-equivalent van diffniemand minder is dan diffzelf!


Antwoord 3, autoriteit 5%

Winmerge heeft een opdrachtregelhulpprogrammadat de moeite van het bekijken waard is.

Je kunt ook het grafische gedeelte ervan gebruiken, afhankelijk van wat je nodig hebt.


Antwoord 4, autoriteit 4%

Een ander alternatief is om git te downloaden en te installeren vanaf hier. Voeg vervolgens het pad naar Git\bin\toe aan je PATHvariabele. Dit geeft je niet alleen diff, maar ook veel andere linux-commando’s die je kunt gebruiken vanaf de Windows-opdrachtregel.

U kunt de variabele PATHinstellen door met de rechtermuisknop op Computer te klikken en Eigenschappen te selecteren. Vervolgens kunt u klikken op Geavanceerde systeeminstellingen aan de linkerkant van het scherm. Klik in de pop-up op Omgevingsvariabelen en voeg vervolgens de PATH-variabele toe aan uw gebruikersvariabelen of werk deze bij met Git\bin\

Git diff-documentatie


Antwoord 5, autoriteit 3%

FC werkt prima, in mijn geval was het niet nuttig omdat ik alleen de regels wilde die veranderd waren. En FC geeft aanvullende gegevens zoals bestandsnaam, dezelfde regels en bilaterale vergelijking.

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

maar in mijn geval wilde ik alleen de regels die zijn gewijzigd en ik wilde dat die regels naar een ander bestand werden geëxporteerd, zonder andere koptekst of gegevens.

Dus ik gebruikte “findstr”om het bestand te vergelijken:

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

waar:

data.txt.bakis de naam van het oude bestand

data.txtis de naam van het nieuwe bestand

DiffResult.txtbevat de gegevens die zijn gewijzigd, d.w.z. slechts één regel ####09


Antwoord 6, autoriteit 2%

Er is ook Powershell (dat deel uitmaakt van Windows). Het is niet snel, maar het is flexibel, hier is het basiscommando. Mensen hebben er verschillende cmdlets en scripts voor geschreven als je een betere opmaak nodig hebt.

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

Geen onderdeel van Windows, maar als u een ontwikkelaar bent met Visual Studio, wordt het geleverd met WinDiff (grafisch)

Maar mijn persoonlijke favoriet is BeyondCompare, dat $30 kost.


Antwoord 7, autoriteit 2%

fc. fc is beter in het verwerken van grote bestanden (> 4 GBytes) dan Cygwin’s diff.


Antwoord 8

DiffUtilsis waarschijnlijk de beste keuze. Het is het Windows-equivalent van diff.

Voor zover ik weet zijn er geen ingebouwde equivalenten.


Antwoord 9

De reden dat u de fout met COMP krijgt, is dat het hulpprogramma ervan uitgaat dat de bestanden die u vergelijkt dezelfde grootte hebben. Om dat te verhelpen kunt u de optie '/n'gebruiken waarmee u het aantal regels kunt specificeren dat u wilt vergelijken. (bekijk de opties die door comp worden ondersteund door 'comp /?'te typen op de opdrachtregel.
dus uw opdracht zou er als volgt uitzien:

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

Dit zou je probleem moeten oplossen als je COMP wilt blijven gebruiken. Maar dit zal een probleem zijn voor echt grote bestanden.

Hoewel compeen optie is, maar ik vind het primitief en FCis een betere optie. je kunt FORFILESen FCsamen gebruiken om waarschijnlijk een heel goed hulpprogramma voor het vergelijken van bestanden te maken als je er regelmatig een nodig hebt.

FC wordt op deze manier gebruikt voor ref:

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

er zijn veel opties beschikbaar die u kunt zien door 'fc /?'
hoop dat dit helpt


Antwoord 10

Ik heb een lichtgewicht grafische software voor Windows gevonden die nuttig lijkt te zijn bij gebrek aan een diffcommando. Het zou al mijn problemen kunnen oplossen.

WinDiffhttp://www.grigsoft.com/download -windiff.htm


Antwoord 11

Het venster dat equivalent is aan het diff-commando is het fc (File Comapre)-commando.

Hier zijn de basisstappen om dit te doen:
1. Bewaar de twee bestanden in een map (Voorbeeld file1.html en file2.html)
2. Start de opdrachtprompt
3. Typ fc file1Location file2Location

Heb een gedetailleerde tutorial over hetzelfde gevonden:

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


Antwoord 12

Ik weet niet of de volgende tool precies is wat je nodig hebt. Maar ik gebruik graag, voor specifieke bestanden, een online tool. Op deze manier kan ik het gebruiken ongeacht het besturingssysteem. Hier is een voorbeeld: diffchecker.com

Maar voor mijn behoeften denk ik dat GIT de beste tool is om wijzigingen en logs van de bestanden van mijn project bij te houden. Als je in een team werkt, kun je wat repo online hebben op een server van jou, of het gebruiken met Bitbucket of Github.

Ik hoop dat het iemand helpt.


Antwoord 13

Als je git op je machine hebt geïnstalleerd, kun je een git-terminal openen en gewoon de Linux diff-opdracht gebruiken zoals normaal.

Other episodes