Comment comparer deux répertoires sur l'invite cmd de Windows m/c? Je veux un équivalent de diff -r d'UNIX.
Installez Cygwin et vous pourrez utiliser diff -r
sous Windows.
La commande comp pour Windows est ce que vous recherchez.
Voici l'exemple:
Pour comparer le contenu du répertoire C:\Reports avec le répertoire de sauvegarde \\ Sales\Backup\April, tapez:
comp c:\reports \\sales\backup\april
Le moyen le plus simple serait probablement de télécharger diff pour Windows: http://gnuwin32.sourceforge.net/packages/diffutils.htm
Vous pouvez aussi faire quelque chose comme:
dir directory1 > dir1
dir directory2 > dir2
comp dir1 dir2
De plus, certaines versions de Windows sont fournies avec windiff
, mais il s’agit d’un outil graphique
Dans Windows, il existe la commande fc
. Je pense que diff
est bien meilleur, mais si vous voulez utiliser uniquement ce qui est venu avec l’installation, eh bien, voilà! :)
Vous pouvez installer Gow et exécuter diff dans l'invite de commande Windows.
Vous pouvez utiliser windiff util inclus dans Windows à partir de la version NT et ultérieure. Il suffit de lancer 'windiff' et un outil graphique apparaîtra.
Fichier -> Comparer les répertoires
http://msdn.Microsoft.com/en-us/library/aa266122(VS.60).aspx
Cet article explique comment l'utiliser à partir de la ligne de commande. Le principal avantage de cet outil est qu'il est déjà inclus et que vous n'avez pas besoin de télécharger et d'installer quoi que ce soit.
Une solution partielle (et donc malheureusement pour moi une "non-solution", même si j'avais de grands espoirs pour elle au départ), ce qui peut ne pas être suffisant pour vous:
Il semble que l’outil ROBOCOPY puisse être (ab-) utilisé pour fonctionner comme une comparaison récursive du genre pauvre ; avec la limite malheureuse, apparemment ne compare pas le contenu du fichier. Il semble comparer tailles, dates et éventuellement attributs. L'incantation magique pour cela serait:
ROBOCOPY path1 path2 /e /l /ns /njs /njh /ndl /fp /log:result.txt /it
où optionssignification semble être:
/e
- recurse, y compris les répertoires vides;/l
- seulement imprimer un journal, ne pas modifier les fichiers;/ns /njs /njh
- n'imprime pas les tailles de fichier, le résumé du travail, l'en-tête du travail;/ndl
- "ne pas enregistrer les noms de dossier" /log:result.txt
- écrit les résultats dans le fichier 'result.txt'; Je pense que cela peut être omis et le résultat sera alors affiché sur une sortie standard.Options additionelles:
/it
- Je pense que cela devrait être ajouté si vous voulez aussi comparer les attributs - voir une explication sur ce que sont les fichiers "peaufinés" .Comme je l'ai dit plus haut, cela ne semble malheureusement pas comparer le contenu des fichiers. J'ai vérifié cela en exécutant d'abord la commande suivante:
mkdir d1\a\b d2\a\b & echo x > d1\a\b\f & echo y > d2\a\b\f
La plupart du temps, cela devrait produire des fichiers d1\a\b\f et d2\a\b\f avec les mêmes horodatages, que vous pouvez vérifier avec dir d1\a\b\f d2\a\b\f
. L'appel robocopy
de d1 et d2 a produit un jeu de résultats vide pour moi.
Pour comparer les données avec l'invite de commande, vous pouvez utiliser
COMP/a/l D:\Dossier1\data.txt D:\Dossier2\data.txt
Il peut y avoir différentes options, telles que le nombre spécifique de lignes à rechercher et la recherche insensible à la casse, et même vous pouvez comparer des dossiers avec la commande Invite. Voici d'autres options pour comparer des fichiers et des dossiers avec la commande Invite .
Sous Windows 10, vous pouvez exécuter la commande diff
dans bash
en activant le shell Bash Linux