Réponses:
On dirait que vous avez besoin de diff-ext !
Cette extension shell (diff-ext) permet de lancer l'outil de comparaison de fichiers pour 2 ou 3 fichiers (selon l'outil) dans le même répertoire ou de "sauvegarder" un ou des fichiers pour une comparaison ultérieure. Il agit comme une liste de fichiers externes les plus récents utilisés (MRU) pour l'outil de comparaison.
Je l'utilise avec KDiff3 , mais il existe un certain nombre d'autres outils de comparaison sur la page avec laquelle il peut être utilisé.
Kdiff3
=> Compare
), donc si vous avez juste besoin de quelque chose de rapide et facile, cela pourrait être suffisant.
Voici ma solution pour ajouter une entrée du menu contextuel du clic droit pour exécuter une commande personnalisée (comme appeler Meld) et diff deux fichiers.
Contexte Des entrées de menu contextuel simples peuvent être facilement ajoutées dans le registre Windows (regedit): manuellement ou en créant un fichier .reg (voir l'exemple ci-dessous).
Le problème est que la commande sera exécutée pour chaque fichier que vous sélectionnez. Il existe trois solutions pour résoudre ce problème:
singleinstance.exe
partir du gestionnaire de menu contextuel (simple). Ce programme propose l'option 2 pour vous. Il recueille les arguments de l'heure à laquelle il est appelé, puis les transmet à la commande souhaitée. Une option de délai d'attente est disponible pour faciliter la collecte des appels à collecter. Suivez le lien pour plus d'informations.Étape 1 Téléchargez singleinstance.exe à partir du gestionnaire de menu contextuel (et remerciez l'auteur, à qui je ne suis pas lié)
Étape 2 (pour la comparaison de fichiers et de dossiers) : Créez un fichier avec l'extension ".reg" avec le contenu suivant (exemple pour Fusionner avec une icône):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]
@="Diff it!"
"Icon"="C:\\Config\\look\\Icons\\Meld.ico"
[HKEY_CLASSES_ROOT\*\shell\DiffIt_Files\command]
@="\"c:\\Bin\\singleinstance.exe\" \"%1\" \"C:\\Program Files (x86)\\Meld\\Meld.exe\" $files --si-timeout 400"
[HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders]
@="Diff It!"
"Icon"="C:\\Config\\look\\Icons\\Meld.ico"
[HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders\command]
@="\"c:\\Bin\\singleinstance.exe\" \"%1\" \"C:\\Program Files (x86)\\Meld\\Meld.exe\" $files --si-timeout 400"
Le fichier reg crée une entrée de menu contextuel intitulée "Diff It!" pour tous les fichiers ( *
) et pour les dossiers ( Folder
). Les lignes contenant le Icon
peuvent être supprimées si vous ne voulez pas d'icône.
Adaptez le chemin du programme singleinstance.exe
et de l'exécution de la commande (ici C:\Program Files (x86)\Meld\Meld.exe
. Notez l'échappement des backspaces et des guillemets
Étape 3 Exécutez le .reg
fichier. Double-cliquer dessus pourrait fonctionner si vous êtes administrateur. Sinon, ouvrez une invite de commande admin dans votre dossier (dans l'explorateur: Fichier> Ouvrir la commande> Ouvrir la commande en tant qu'administrateur ou Alt-F-M-A
). Tapez simplement le nom du .reg
fichier pour l'ajouter au registre.
C'est ça.
(désinstallation) Vous pouvez soit supprimer les clés manuellement dans le registre, soit créer un .reg
fichier avec le contenu suivant:
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]
[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders]
Alternative Utilisez un logiciel pour ajouter-modifier-supprimer des entrées du menu contextuel comme ContextEdit (mais ne pouvez pas ajouter d'icône facilement). Dans ce cas, vous n'avez pas besoin d'échapper aux barres obliques et aux guillemets pour que la commande ressemble à ceci:
"c:\Bin\singleinstance.exe "%1" "C:\Program Files (x86)\Meld\Meld.exe" $files --si-timeout 400
singleinstance.exe
. Peut-être qu'il n'est pas compatible avec Windows 10.
Beyond Compare et WinMerge peuvent également le faire si vous activez l' intégration de Shell pendant l'installation.
Vous pouvez créer un fichier de commandes avec la commande personnalisée, puis y ajouter un raccourci shell:sendto
. En prime, cela évite également de modifier le registre.
Inspiré par cette réponse Stack Overflow , par exemple:
1a. Créez un nouveau fichier avec:
@echo off
setlocal
start "Compare files" /B /MIN "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe" /diff %2 %1 First:'%2' Second:'%1'
1b. Modifiez la commande de démarrage , par exemple modifiez le chemin d'accès à votre outil de comparaison et les arguments de ligne de commande suivants, le cas échéant.
Enregistrez le fichier de commandes dans un répertoire permanent, par exemple C:\Users\You\Compare With My Tool.cmd
.
Créez un raccourci vers votre Compare With My Tool.cmd
fichier à l'intérieur shell:sendto
. Le nom du raccourci est ce que vous verrez dans le menu contextuel Envoyer vers. L'icône qui apparaît dans le shell est l'icône du raccourci et vous pouvez changer cela en utilisant le menu des propriétés du fichier.
Sélectionnez les deux fichiers à comparer, cliquez avec le bouton droit et sélectionnez Envoyer vers> Comparer avec mon outil (ou tout ce que vous avez nommé votre raccourci)