webentwicklung-frage-antwort-db.com.de

Wie wird "diff -r" von UNIX in der Windows-Eingabeaufforderung ausgeführt

Wie vergleiche ich zwei Verzeichnisse in cmd Prompt von Windows m/c?.

26
Pradeep

Installieren Sie Cygwin und Sie können diff -r unter Windows verwenden.

19
RichieHindle

Der Befehl comp für Windows ist das, wonach Sie suchen.

Hier das Beispiel:

Um den Inhalt des Verzeichnisses C:\Reports mit dem Sicherungsverzeichnis \\ Sales\Backup\April zu vergleichen, geben Sie Folgendes ein:

comp c:\reports \\sales\backup\april 
14
victor hugo

Der einfachste Weg wäre wahrscheinlich, diff für Windows herunterzuladen: http://gnuwin32.sourceforge.net/packages/diffutils.htm
Sie könnten auch so etwas tun:

dir directory1 > dir1
dir directory2 > dir2
comp dir1 dir2

Einige Versionen von Windows werden mit windiff ausgeliefert. Dies ist jedoch ein GUI-Tool

8
carlpett

In Windows gibt es den Befehl fc. Ich denke, diff ist viel besser, aber wenn Sie nur das verwenden wollen, was mit der Installation geliefert wurde, nun, los geht's! :)

4
Adri C.S.

Sie können Gow installieren und diff in der Windows-Eingabeaufforderung ausführen.

3
Victor

Sie können das in Windows enthaltene Windiff Util ab der NT-Version verwenden. Führen Sie einfach 'Windiff' aus und ein Grafik-Tool erscheint.

Datei -> Verzeichnisse vergleichen

http://msdn.Microsoft.com/de-de/library/aa266122(VS.60).aspx

Dieser Artikel beschreibt, wie er von der Befehlszeile aus verwendet wird. Ein großer Vorteil dieses Tools ist, dass es bereits enthalten ist und Sie nichts herunterladen und installieren müssen.

2
Ivan Suhinin

Teillösung mit ROBOCOPY

Eine Teillösung (und damit für mich leider eine "Nicht-Lösung", obwohl ich zunächst große Hoffnungen hatte), die für Sie vielleicht nicht ausreicht:

Es scheint, dass das Werkzeug ROBOCOPY (ab-) verwendet werden kann, um als rekursiver Vergleich eines armen Mannes zu arbeiten ; mit der unglücklichen Einschränkung, dass es offensichtlich vergleicht den Dateiinhalt nicht. Es scheint, Größen, Datumsangaben und optional Attribute zu vergleichen. Die magische Beschwörung dafür wäre:

ROBOCOPY path1 path2 /e /l /ns /njs /njh /ndl /fp /log:result.txt /it

wo OptionenBedeutung scheint zu sein:

  • /e - Wiederholung, einschließlich leerer Verzeichnisse;
  • /l - Nur ein Protokoll drucken, keine Dateien ändern;
  • /ns /njs /njh - Dateigröße, Auftragszusammenfassung, Auftragskopf nicht drucken;
  • /ndl - "Ordnernamen nicht protokollieren"
    • HINWEIS: Dies führt angeblich dazu, dass fehlende oder überflüssige leere Verzeichnisse übersprungen werden. Wenn Sie dies nicht verwenden, sollten diese protokolliert werden. Sie müssen jedoch andere Verzeichnisse auf andere Weise entfernen.
  • /log:result.txt - Ergebnisse in 'result.txt'-Datei schreiben; Ich denke, das kann weggelassen werden und das Ergebnis wird dann in der Standardausgabe angezeigt.

Zusatzoptionen:

Warnung: Der Inhalt der Datei wird NICHT verglichen

Wie ich bereits sagte, scheint dies den Inhalt der Datei leider nicht zu vergleichen. Ich habe dies überprüft, indem ich zuerst den folgenden Befehl ausführte:

mkdir d1\a\b d2\a\b & echo x > d1\a\b\f & echo y > d2\a\b\f

In der Regel sollten auf diese Weise die Dateien d1\a\b\f und d2\a\b\f mit denselben Zeitstempeln erstellt werden, die Sie mit dir d1\a\b\f d2\a\b\f überprüfen können. Der robocopy-Aufruf von d1 & d2 erzeugte eine leere Ergebnismenge für mich.

0
akavel

Zum Vergleichen von Daten mit der Eingabeaufforderung können Sie verwenden

COMP/a/l D:\Ordner1\data.txt D:\Ordner2\data.txt

Es gibt verschiedene Optionen, z. B. eine bestimmte Anzahl von Zeilen für die Suche und die Suche nach Groß- und Kleinschreibung. Außerdem können Sie Ordner mit dem Befehl "Eingabeaufforderung" vergleichen. Weitere Optionen für vergleichen Sie Dateien und Ordner mit der Eingabeaufforderung .

0
Hari

In Windows 10 können Sie den Befehl diff in bash ausführen, indem Sie die Linux Bash Shell aktivieren

0
krpra