Explorateur Windows - Diff deux fichiers du menu contextuel?


18

Existe-t-il un moyen de différencier deux fichiers sélectionnés dans le menu contextuel de l'Explorateur Windows?

Réponses:


16

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é.

texte alternatif


Vous êtes plus que bienvenus!
John T

N'a pas bien fonctionné sur mes fenêtres 7. Je l'ai configuré avec le chemin d'accès à diff.exe et tout ce que j'obtiens est quelque chose qui clignote devant mes yeux. Cette application est-elle consciente du tout?
Anders Lindén

Fonctionne bien sur Win7 mais j'utilise Meld comme outil de comparaison.
JimFred

KDiff3 a déjà une extension de menu contextuel intégrée maintenant ( Kdiff3=> Compare), donc si vous avez juste besoin de quelque chose de rapide et facile, cela pourrait être suffisant.
user121391

Je vais peut-être devoir essayer, mais j'utilise exclusivement gvim, donc je ne sais pas si cela se passera bien
Antony

8

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:

  1. Utiliser des extensions Shell (compliquées)
  2. Assurez-vous que votre application intercepte les différents appels (compliqué)
  3. Utiliser à singleinstance.exepartir 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 Iconpeuvent être supprimées si vous ne voulez pas d'icône.

Adaptez le chemin du programme singleinstance.exeet 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 .regfichier. 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 .regfichier 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 .regfichier 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

A travaillé pour moi ...
AnthonyVO

1
Dans l'ensemble, j'aime cette implémentation. Cependant, malheureusement, il crée une nouvelle instance de Meld chaque fois que le menu contextuel est utilisé. Des conseils pour l'amener à utiliser l'instance existante? Je suppose que c'était l'intention de singleinstance.exe. Peut-être qu'il n'est pas compatible avec Windows 10.
Jim Fell


0

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.

  1. Enregistrez le fichier de commandes dans un répertoire permanent, par exemple C:\Users\You\Compare With My Tool.cmd.

  2. Créez un raccourci vers votre Compare With My Tool.cmdfichier à 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.

  3. 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)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.