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

je sais qu'il y a un post similaire à celui-ci: ici .

J'ai essayé d'utiliser la commande comp comme mentionné, mais si j'ai deux fichiers, l'un avec des données comme" abcd "et l'autre avec des données" abcde", il est juste dit que les fichiers sont de tailles différentes. Je voulais savoir exactement où ils diffèrent. Dans Unix, la simple différence me dit quelle ligne et quelle colonne, la commande comp dans windows fonctionne si j'ai quelque chose comme "abd" et "abc". Pas autrement. Une idée de ce que je peux utiliser pour ça?

235
demandé sur Community 2011-07-29 22:11:27

13 réponses

exécutez ceci dans le shell CMD ou le fichier batch:

FC file1 file2

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

FC /B file1 file2
383
répondu Andriy M 2017-11-20 10:35:24

Eh bien, sous Windows, j'utilise heureusement diff et beaucoup d'autres outils GNU. Vous pouvez le faire avec cygwin , mais je préfère personnellement GnuWin32 parce que 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!

25
répondu David Heffernan 2011-07-29 18:23:12

Winmerge a un utilitaire en ligne de commande qui pourrait être intéressant de vérifier.

Aussi, vous pouvez utiliser la partie graphique de trop en fonction de ce que vous avez besoin.

20
répondu Robert Greiner 2011-07-29 18:14:22

une autre alternative consiste à télécharger et installer git à partir de ici . Ensuite, ajoutez le chemin vers Git\bin\ à votre variable PATH . Cela vous donnera non seulement diff, mais aussi beaucoup d'autres commandes linux que vous pouvez utiliser depuis la ligne de commande windows.

vous pouvez définir la variable PATH en cliquant avec le bouton droit de la souris sur L'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 le pop up, cliquez sur Variables D'environnement et puis soit ajouter ou mettre à jour la variable de chemin dans vos variables d'utilisateur avec Git\bin\

git diff documentation

14
répondu Tim Hutchison 2018-05-29 17:30:01

fc. fc est meilleur pour traiter les gros fichiers (>4 Go) que le diff de Cygwin.

8
répondu nerdfever.com 2012-09-26 19:01:05

FC fonctionne très bien dans mon cas, il n'était pas utile que je voulais juste les lignes qui sont modifiés. Et FC donnent 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 voulais seulement les lignes qui ont changé et je voulais que ces lignes soient exportées vers un fichier différent, sans autre en-tête ou données.

donc j'ai 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 qui sont modifiées I. e juste une ligne # # # # 09

8
répondu Nimish Choudhary 2015-06-01 19:51:42

il y a aussi Powershell (qui fait partie de Windows). Ce n'est pas rapide mais c'est flexible, voici la commande de base. Les gens ont écrit divers cmdlets et scripts pour cela si vous avez besoin de mieux formatage.

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

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

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

7
répondu Paul Williams 2014-04-18 02:21:13

DiffUtils est probablement votre meilleure option. C'est L'équivalent Windows de diff.

à ma connaissance, il n'y a pas d'équivalent incorporé.

4
répondu mattkelly 2011-07-29 18:18:33

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 cela, vous pouvez utiliser l'option '/n' avec laquelle vous pouvez spécifier le nombre de lignes que vous voulez comparer. (voir les options supportées par comp en tapant 'comp /?' sur la ligne de commande. donc votre commande ressemblerait à:

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 vous en tenir à L'utilisation COMP. Mais ce sera être un problème pour les très gros fichiers.

bien que comp soit une option, mais je pense qu'elle est primitive et FC est une meilleure option. vous pouvez utiliser FORFILES et FC ensemble pour probablement faire une très bonne utilité filecompare si vous en avez besoin sur une base fréquente.

FC est utilisé de cette façon pour réf:

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

il ya beaucoup d'options disponibles que vous pouvez voir en 'fc /?' espérons que cette aide

2
répondu proximace 2015-01-30 06:04:48

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

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

2
répondu Ahmad 2016-12-27 20:51:03

l'équivalent windows de la commande diff est la commande fc (File Comapre).

Voici les étapes de base pour le faire:

1. Garder les deux fichiers dans un dossier (Exemple fichier1.html et fichier2.html)

2. Invite de commande de lancement

3. Type fc file1Location file2Location

"

Ont 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
répondu Vishal Kotak 2015-08-16 14:41:32

Je ne sais pas si l'outil suivant est exactement ce dont vous avez besoin. Mais j'aime utiliser, pour des fichiers spécifiques, un outil 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 changements et les journaux des fichiers de mon projet est git. Si vous travaillez en équipe, vous pouvez avoir un peu de repo en ligne sur un de vos serveurs, ou l'utiliser avec Bitbucket ou Github.

Espérons qu'il aide à quelqu'un.

0
répondu Pedro Acácio 2016-05-31 17:51:28

si vous avez installé git sur votre machine, vous pouvez ouvrir un terminal Git et utiliser la commande Linux diff comme d'habitude.

0
répondu falsePockets 2017-11-20 07:48:36