2009-11-14 21 views
8

Desidero confrontare due cartelle su Windows (Vista, XP) che hanno un numero elevato di file enormi, che devo confrontare. Se utilizzo Beyond Compare o tale strumento per confrontare le cartelle, ci vuole molto tempo se lo faccio manualmente. Ho bisogno di aggiungere il confronto delle cartelle al file batch.Confronto cartelle tramite riga di comando

Quindi su Windows (XP, Vista), c'è un comando (integrato) o uno strumento/utility di terze parti (commerciale o freeware - entrambi) per confrontare due cartelle utilizzando la riga di comando.

risposta

4

C'è il comando integrato COMP che è possibile utilizzare. Dipende un po 'da quello che in realtà vuoi confrontare.

Confronta il contenuto di due file o set di file .

COMP [data1] [data2] [/ D] [/ A] [/ L] [/ N = numero] [/ C]

dati1 Specifica la posizione e il nome (s) del primo file (s) da confrontare.

data2 Specifica la posizione e i nomi dei secondi file da confrontare.

/D Visualizza le differenze nel formato decimale .

/A Visualizza differenze nei caratteri ASCII.

/L Visualizza i numeri di riga per le differenze.

/N = numero Confronta solo il primo numero specificato di righe in ciascun file .

/C Ignora il caso di lettere ASCII quando si confrontano i file.

Per confrontare insiemi di file, utilizzare i caratteri jolly nei parametri data1 e data2.

usare una sintassi simile COMP c:\folder1 c:\folder2 per confrontare tutti i file in folder1 con il contenuto di folder2. Se è necessario accedere alle sottodirectory, è necessario utilizzare uno script batch utilizzando un ciclo FOR e il comando PUSHD e POPD.

Lascia un commento, se hai bisogno di aiuto.

+0

come utilizzare questo 'COMP' per ricorsivamente con due cartelle. Ho provato come questo 'COMP C: \ folder1 \ * C: \ folder2 \ *' ma questo non restituisce tutti i file. – Ramesh

+0

Anche io ho bisogno che funzioni in modo ricorsivo. – shinzou

10
> diff -r Folder_A Folder_B

Si possono trovare Diffutils GNU compilati per finestre GnuWin32.

3

Io uso le versioni 's Cygwin degli strumenti della riga di comando di Unix:

diff -r dir1 dir2 

che ho usato anche MinGW in passato. Entrambi hanno alcuni trucchi, ma sono "abbastanza vicini". Per le differenze visive, mi piace molto lo WinMerge.

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

Funzionerà, ma non riesco a rimuovere la domanda di prompt dopo il primo confronto.

+0

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

-1

Le mie due directory hanno la stessa struttura, solo alcune modifiche di versione ai file. Inoltre, la mia directory era solo una cartella di file python. Quindi sono partito con ...

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

1) Questa è una domanda di Windows, 2) È possibile utilizzare 'diff -r', non c'è bisogno di' cat'. – Carpetsmoker

Problemi correlati