it-swarm.com.de

Was ist die Windows-Entsprechung des Befehls diff?

Ich weiß, dass es einen ähnlichen Beitrag gibt: hier .
Ich habe versucht, den erwähnten Befehl comp zu verwenden, aber wenn ich zwei Dateien habe, eine mit Daten wie "abcd" und die andere mit Daten "abcde", heißt es nur, dass die Dateien unterschiedlich sind Größen. Ich wollte wissen, wo genau sie sich unterscheiden. Unter Unix sagt mir der einfache Diff, welche Zeile und welche Spalte der Befehl comp in Windows verwendet, wenn ich so etwas wie "abd" und "abc" habe. Nicht anders. Irgendwelche Ideen, was ich dafür verwenden kann?

261
wittythotha

Führen Sie dies in der CMD-Shell oder der Batch-Datei aus:

FC file1 file2

FC kann auch zum Vergleichen von Binärdateien verwendet werden:

FC /B file1 file2
418
Andriy M

Nun, unter Windows führe ich diff und viele andere GNU Tools aus. Sie können es mit cygwin tun, aber ich persönlich bevorzuge GnuWin32 , weil es eine viel leichtere Installationserfahrung ist.

Meine Antwort lautet also, dass das Windows-Äquivalent von diff kein anderes als diff selbst ist!

30
David Heffernan

Winmerge hat ein Kommandozeilenprogramm , das es wert sein könnte, ausgecheckt zu werden.

Sie können auch den grafischen Teil davon verwenden, je nachdem, was Sie benötigen.

23
Robert Greiner

Eine andere Alternative ist, git von hier herunterzuladen und zu installieren. Fügen Sie dann den Pfad zu Git\bin\ zu Ihrer PATH -Variablen hinzu. Dadurch erhalten Sie nicht nur diff, sondern auch viele andere Linux-Befehle, die Sie über die Windows-Befehlszeile verwenden können.

Sie können die Variable PATH festlegen, indem Sie mit der rechten Maustaste auf Computer klicken und Eigenschaften auswählen. Dann können Sie auf der linken Seite des Bildschirms auf Erweiterte Systemeinstellungen klicken. Klicken Sie im Popup auf Umgebungsvariablen und fügen Sie die PATH-Variable in Ihren Benutzervariablen mit Git\bin\ hinzu oder aktualisieren Sie sie.

Git Diff Dokumentation

15
Tim Hutchison

FC funktioniert super, in meinem Fall war es nicht hilfreich, da ich nur die Zeilen wollte, die geändert werden. Und FC geben zusätzliche Daten wie Dateiname, gleiche Zeilen und bilateralen Vergleich.

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

aber in meinem Fall wollte ich nur die Zeilen, die sich geändert haben, und wollte, dass diese Zeilen in eine andere Datei exportiert werden, ohne andere Header oder Daten.

Also habe ich "findstr" verwendet, um die Datei zu vergleichen:

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

wo :

data.txt.bak ist der Name der alten Datei

data.txt ist der Name der neuen Datei

DiffResult.txt enthält die geänderten Daten, dh nur eine Zeile #### 09

12

fc. fc ist besser im Umgang mit großen Dateien (> 4 GByte) als Cygwins diff.

9
nerdfever.com

Es gibt auch Powershell (das Teil von Windows ist). Es ist nicht schnell, aber es ist flexibel, hier ist der grundlegende Befehl. Die Leute haben verschiedene Cmdlets und Skripte dafür geschrieben, wenn Sie eine bessere Formatierung benötigen.

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

Nicht Teil von Windows, aber wenn Sie ein Entwickler mit Visual Studio sind, wird es mit WinDiff geliefert (grafisch)

Aber mein persönlicher Favorit ist BeyondCompare, das 30 Dollar kostet.

9
Paul Williams

DiffUtils ist wahrscheinlich die beste Wahl. Es ist das Windows-Äquivalent von diff.

Meines Wissens gibt es keine eingebauten Entsprechungen.

4
mattkelly

Ich habe eine kompakte Grafiksoftware für Windows gefunden, die bei fehlendem Befehl diff nützlich zu sein scheint. Es könnte alle meine Probleme lösen.

WinDiff http://www.grigsoft.com/download-windiff.htm

2
Ahmad

Der Grund für die Fehlermeldung bei COMP ist, dass das Dienstprogramm davon ausgeht, dass die zu vergleichenden Dateien dieselbe Größe haben. Um dies zu vermeiden, können Sie die Option '/n' verwenden, mit der Sie die Anzahl der zu vergleichenden Zeilen angeben können. (Sehen Sie sich die von comp unterstützten Optionen an, indem Sie 'comp /?' in die Befehlszeile eingeben. Ihr Befehl würde dann so aussehen:

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

Dies sollte Ihr Problem lösen, wenn Sie bei der Verwendung von COMP bleiben möchten. Dies ist jedoch ein Problem bei sehr großen Dateien.

Obwohl comp eine Option ist, halte ich es für primitiv und FC ist eine bessere Option. Sie können FORFILES und FC zusammen verwenden, um wahrscheinlich ein wirklich gutes Dateivergleichsdienstprogramm zu erstellen, wenn Sie eines häufig benötigen.

FC wird wie folgt verwendet für ref:

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

es gibt viele Optionen, die Sie durch 'fc /?' sehen können. Ich hoffe, dies hilft

2
proximace

Ich weiß nicht, ob das folgende Tool genau das ist, was Sie brauchen. Für bestimmte Dateien verwende ich jedoch gerne ein Online-Tool. Auf diese Weise kann ich es unabhängig vom Betriebssystem verwenden. Hier ist ein Beispiel: diffchecker.com

Aber für meine Bedürfnisse ist GIT das beste Werkzeug, um Änderungen und Protokolle der Dateien meines Projekts zu verfolgen. Wenn Sie in einem Team arbeiten, können Sie ein Repo auf einem Ihrer Server online stellen oder es mit Bitbucket oder Github verwenden.

Hoffe es hilft jemandem.

0
Pedro Acácio

Wenn Sie git auf Ihrem Computer installiert haben, können Sie ein git-Terminal öffnen und ganz normal den Befehl Linux diff verwenden.

0
falsePockets

Das Fenster, das dem Befehl diff entspricht, ist der Befehl fc (File Comapre).

Hier sind die grundlegenden Schritte, um dies zu tun:
1. Bewahren Sie die beiden Dateien in einem Ordner auf (Beispiel file1.html und file2.html).
2. Starten Sie die Eingabeaufforderung
3. Geben Sie fc file1Location file2Location ein

Habe ein ausführliches Tutorial dazu gefunden:

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

0
Vishal Kotak