web-dev-qa-db-fra.com

Quel est l'équivalent Windows de la commande diff?

Je sais qu'il existe un post similaire à ceci: ici .
J'ai essayé d'utiliser la commande comp comme indiqué, mais si j'ai deux fichiers, l'un avec des données telles que "abcd" et l'autre avec des données "abcde", il indique simplement que les fichiers sont différents. tailles. Je voulais savoir où exactement ils diffèrent. Sous Unix, le simple diff me dit quelle ligne et quelle colonne, la commande comp de Windows fonctionne si j'ai quelque chose comme "abd" et "abc". Pas autrement. Des idées que je peux utiliser pour cela?

261
wittythotha

Exécutez ceci dans le shell CMD ou le fichier de commandes:

FC file1 file2

FC peut également être utilisé pour comparer des fichiers binaires:

FC /B file1 file2
418
Andriy M

Eh bien, sous Windows, j’exécute avec plaisir diff et de nombreux autres outils GNU. Vous pouvez le faire avec cygwin , mais je préfère personnellement GnuWin32 car c'est une expérience d'installation beaucoup plus légère.

Donc, ma réponse est que l'équivalent Windows de diff n'est autre que diff lui-même!

30
David Heffernan

Winmerge a un tilitaire de ligne de commande qui pourrait valoir la peine d’être vérifié.

En outre, vous pouvez également utiliser la partie graphique en fonction de vos besoins.

23
Robert Greiner

Une autre alternative consiste à télécharger et installer git à partir de ici . Ajoutez ensuite le chemin de Git\bin\ à votre variable PATH. Cela vous donnera non seulement diff, mais aussi de nombreuses autres commandes linux que vous pouvez utiliser à partir de la ligne de commande windows.

Vous pouvez définir la variable PATH en cliquant avec le bouton droit de la souris sur Ordinateur et en sélectionnant Propriétés. Ensuite, vous pouvez cliquer sur Paramètres système avancés sur le côté gauche de l'écran. Dans la fenêtre contextuelle, cliquez sur Variables d'environnement, puis ajoutez ou mettez à jour la variable PATH dans vos variables utilisateur avec Git\bin\.

documentation Git diff

15
Tim Hutchison

FC fonctionne très bien dans mon cas ce n’était pas utile car je voulais juste que les lignes soient modifiées. Et FC donne des données supplémentaires comme le nom de fichier, les mêmes lignes et la comparaison bilatérale.

    >fc data.txt data.txt.bak   
    ***** DATA.TXT
    ####09
    ####09
    ####09
    ***** DATA.TXT.BAK
    ####09
    ####08
    ####09

mais dans mon cas, je ne voulais que les lignes qui ont changé et que ces lignes soient exportées dans un fichier différent, sans autre en-tête ni donnée.

J'ai donc utilisé "findstr" pour comparer le fichier:

findstr /V /G:data.txt.bak data.txt >DiffResult.txt

où :

data.txt.bak est le nom de l'ancien fichier

data.txt est le nom du nouveau fichier

DiffResult.txt contient les données modifiées, c'est-à-dire une seule ligne #### 09

12
Nimish Choudhary

fc. Fc gère mieux les gros fichiers (> 4 Go) que le diff de Cygwin.

9
nerdfever.com

Il y a aussi Powershell (qui fait partie de Windows). Ce n'est pas rapide mais flexible, voici la commande de base. Les utilisateurs ont écrit diverses applets de commande et scripts si vous avez besoin d'une meilleure mise en forme.

PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)

Ne fait pas partie de Windows, mais si vous êtes développeur avec Visual Studio, il est livré avec WinDiff (graphique)

Mais mon préféré est BeyondCompare, qui coûte 30 $.

9
Paul Williams

DiffUtils est probablement votre meilleur pari. C'est l'équivalent Windows de diff.

À ma connaissance, il n'y a pas d'équivalent intégré.

4
mattkelly

J'ai trouvé un logiciel graphique léger pour Windows qui semble être utile en l'absence de commande diff. Cela pourrait résoudre tous mes problèmes.

WinDiff http://www.grigsoft.com/download-windiff.htm

2
Ahmad

La raison pour laquelle vous obtenez l'erreur avec COMP est que l'utilitaire suppose que les fichiers que vous comparez sont de la même taille. Pour surmonter ce problème, vous pouvez utiliser l’option '/n' avec laquelle vous pouvez spécifier le nombre de lignes à comparer. (voir les options supportées par comp en tapant 'comp /?' sur la ligne de commande. Ainsi, votre commande ressemblerait à ceci:

C:\>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /c 

Cela devrait résoudre votre problème si vous voulez continuer à utiliser COMP. Mais ce sera un problème pour les très gros fichiers.

Bien que comp soit une option, j'estime qu'elle est primitive et que FC est une meilleure option. vous pouvez utiliser FORFILES et FC pour créer probablement un très bon utilitaire de calcul de fichiers si vous en avez besoin fréquemment.

FC est utilisé de cette façon pour ref:

C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"

il y a beaucoup d'options disponibles que vous pouvez voir par 'fc /?' espérons que cela aide

2
proximace

Je ne sais pas si l'outil suivant est exactement ce dont vous avez besoin. Mais j'aime utiliser, pour des fichiers spécifiques, des outils en ligne. De cette façon, je peux l'utiliser quel que soit le système opérationnel. Voici un exemple: diffchecker.com

Mais pour mes besoins, je suppose que le meilleur outil pour suivre les modifications et les journaux des fichiers de mon projet est GIT. Si vous travaillez en équipe, vous pouvez avoir un dépôt en ligne sur votre serveur, ou l'utiliser avec Bitbucket ou Github.

J'espère que ça aide quelqu'un.

0
Pedro Acácio

Si vous avez installé git sur votre machine, vous pouvez ouvrir un terminal git et simplement utiliser la commande Linux diff normalement.

0
falsePockets

L'équivalent Windows de la commande diff est la commande fc (File Comapre).

Voici les étapes de base pour le faire:
1. Conservez les deux fichiers dans un dossier (exemple file1.html et file2.html).
2. Lancer l'invite de commande
3. Tapez fc file1Location file2Location

J'ai trouvé un tutoriel détaillé sur le même:

http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-Prompt/

0
Vishal Kotak