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?
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
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.
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.
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
fc. fc ist besser im Umgang mit großen Dateien (> 4 GByte) als Cygwins diff.
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.
DiffUtils ist wahrscheinlich die beste Wahl. Es ist das Windows-Äquivalent von diff.
Meines Wissens gibt es keine eingebauten Entsprechungen.
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.
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
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.
Wenn Sie git auf Ihrem Computer installiert haben, können Sie ein git-Terminal öffnen und ganz normal den Befehl Linux diff
verwenden.
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/