2009-11-14 13 views
8

Ich möchte zwei Ordner unter Windows (Vista, XP) vergleichen, die eine große Anzahl von großen Dateien enthalten, die ich vergleichen muss. Wenn ich Beyond Compare oder ein solches Tool zum Vergleichen der Ordner verwende, dauert es viel Zeit, wenn ich es manuell mache. Ich muss diesen Ordnervergleich zur Batch-Datei hinzufügen.Ordnervergleiche über die Befehlszeile

Also unter Windows (XP, Vista), gibt es einen Befehl (eingebaut) oder irgendein Drittanbieter-Tool/Dienstprogramm (kommerzielle oder Freeware - entweder), um zwei Ordner über die Befehlszeile zu vergleichen.

Antwort

4

Es gibt den eingebauten Befehl COMP, den Sie verwenden könnten. Es hängt ein bisschen davon ab, was du eigentlich vergleichen willst.

Vergleicht den Inhalt von zwei Dateien oder Sätze von Dateien.

COMP [data1] [DATA2] [/ D] [/ A] [/ L] [/ N = Anzahl] [/ C]

data1 Gibt Lage und Name (n) der ersten Datei (s) zu vergleichen.

data2 Gibt den Speicherort und Name (n) der zweiten zu vergleichenden Dateien an.

/D Zeigt die Unterschiede in Dezimalformat an.

/A Anzeigen Unterschiede in ASCII-Zeichen.

/L Zeigt Zeilennummern für Unterschiede an.

/N = Anzahl Vergleicht nur die erste angegebene Anzahl von Zeilen in jeder Datei.

/C Berührt den Fall von ASCII-Zeichen beim Vergleichen von Dateien.

Verwenden Sie zum Vergleichen von Dateisätzen Platzhalter in den Parametern "data1" und "data2".

eine Syntax wie COMP c:\folder1 c:\folder2 Verwenden Sie alle Dateien in folder1 mit dem Inhalt von folder2 zu vergleichen. Wenn Sie in die Unterverzeichnisse zurückkehren müssen, müssen Sie ein Stapelskript mit einer FOR-Schleife und dem Befehl PUSHD und POPD verwenden.

Hinterlassen Sie einfach einen Kommentar, wenn Sie Hilfe benötigen.

+0

wie dieses 'COMP' für rekursiv mit zwei Ordner verwenden. Ich habe versucht, wie dies 'COMP C: \ Ordner1 \ * C: \ Ordner2 \ *', aber das gibt nicht die ganze Datei zurück. – Ramesh

+0

Ich brauche es auch rekursiv zu arbeiten. – shinzou

10
> diff -r Folder_A Folder_B

Sie finden GNU diffutils für Fenster auf GnuWin32 zusammengestellt.

3

Ich benutze Cygwin ‚s-Versionen der Unix-Kommandozeilen-Tools:

diff -r dir1 dir2 

ich auch MinGW in der Vergangenheit verwendet haben. Beide haben ein paar Fallstricke, sind aber "nahe genug". Für visuelle Diffs mag ich WinMerge ziemlich gut.

2
forfiles /P %folder1Path% /S /C "cmd /c comp /a @path %folder2Path%\@file" 

Wird funktionieren, aber ich kann die Frage Frage nicht entfernen, nachdem der erste Vergleich gemacht wurde.

+0

ECHO n | COMP - http://ss64.com/nt/comp.html –

-1

Meine zwei Verzeichnisse haben die gleiche Struktur, nur ein paar Versionsänderungen an den Dateien. Außerdem war mein Verzeichnis nur ein Ordner mit Python-Dateien. So kam ich mit ...

$ cat dir1/*.py > file1.txt 
$ cat dir2/*.py > file2.txt 
$ diff file1 file2 
+0

1) Dies ist eine Windows-Frage, 2) Sie können 'diff -r' verwenden, keine Notwendigkeit für' cat'. – Carpetsmoker