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?
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
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!
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.
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\
fc. fc est meilleur pour traiter les gros fichiers (>4 Go) que le diff de Cygwin.
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
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$.
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
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.
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 /
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.
si vous avez installé git sur votre machine, vous pouvez ouvrir un terminal Git et utiliser la commande Linux diff
comme d'habitude.