Windows Explorer - Diff due file dal menu contestuale?


Risposte:


16

Sembra che tu abbia bisogno di diff-ext !

Questa estensione della shell (diff-ext) consente di avviare lo strumento di confronto dei file per 2 o 3 file (a seconda dello strumento) nella stessa directory o "salvare" uno o più file per un confronto successivo. Funge da elenco di file MRU (ultimo utilizzo esterno) esterno per lo strumento di confronto.

Lo sto usando con KDiff3 , ma ci sono molti altri strumenti diff nella pagina con cui può essere usato.

testo alternativo


Sei più che benvenuto!
John T,

Non ha funzionato bene su Windows 7. L'ho configurato con il percorso di diff.exe e tutto ciò che ottengo è qualcosa che lampeggia davanti ai miei occhi. Questa diff è a conoscenza di tutti?
Anders Lindén,

Funziona bene su Win7 ma sto usando Meld come strumento diff.
JimFred,

KDiff3 ha già un'estensione del menu di scelta rapida integrata ora ( Kdiff3=> Compare), quindi se hai solo bisogno di qualcosa di rapido e semplice, potrebbe essere sufficiente.
user121391,

Potrei doverlo provare, ma uso esclusivamente gvim, quindi non sono sicuro di come andrà a finire bene
Antony,

8

Ecco la mia soluzione per aggiungere una voce del menu contestuale del tasto destro per eseguire un comando personalizzato (come chiamare Meld) e diff due file.

Sfondo Le voci del menu contestuale semplice possono essere facilmente aggiunte nel registro di Windows (regedit): manualmente o creando un file .reg (vedi esempio sotto).

Il problema è che il comando verrà eseguito per ogni file selezionato. Esistono tre soluzioni per risolvere questo problema:

  1. Usa estensioni Shell (complicate)
  2. Assicurarsi che l'applicazione riceva le diverse chiamate (complicate)
  3. Utilizzare singleinstance.exedal gestore del menu di scelta rapida (semplice). Questo programma fa l'opzione 2 per te. Raccoglie argomenti dal diverso momento in cui viene chiamato e quindi li passa al comando desiderato. È disponibile un'opzione di timeout per aiutare a raccogliere le chiamate da raccogliere. Segui il link per maggiori informazioni.

Passo 1 Scarica singleinstance.exe da context-menu-handler (e ringrazia l'autore, al quale non sono collegato)

Passaggio 2 (per il confronto di file e cartelle) : creare un file con estensione ".reg" con il seguente contenuto (esempio per Fusione con un'icona):

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"

Il file reg crea una voce del menu di scelta rapida denominata "Diff It!" per tutti i file ( *) e per Cartelle ( Folder). Le righe che contengono il Iconpossono essere rimosse se non si desidera un'icona.

Adatta il percorso del programma singleinstance.exee l'esecuzione del comando (qui C:\Program Files (x86)\Meld\Meld.exe. Nota l'escape degli spazi posteriori e delle virgolette

Passaggio 3 Eseguire il .regfile. Fare doppio clic su di esso potrebbe funzionare se si è amministratori. Altrimenti, apri un prompt dei comandi di amministrazione nella cartella (in Esplora risorse: File> Apri comando> Apri comando come amministratore o Alt-F-M-A). Digita semplicemente il nome del .regfile per aggiungerlo al registro.

Questo è tutto.

(disinstallazione) È possibile eliminare manualmente le chiavi nel registro o creare un .regfile con il seguente contenuto:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]

[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders] 

Alternativa Utilizzare un software per aggiungere-modificare-rimuovere le voci del menu di scelta rapida come ContextEdit (ma non è possibile aggiungere facilmente l'icona). In questo caso non è necessario sfuggire alle barre e alle virgolette, quindi il comando dovrebbe apparire così:

"c:\Bin\singleinstance.exe "%1" "C:\Program Files (x86)\Meld\Meld.exe" $files --si-timeout 400

Ha funzionato per me ...
AnthonyVO

1
Nel complesso, mi piace questa implementazione. Tuttavia, purtroppo, crea una nuova istanza di Meld ogni volta che viene utilizzato il menu di scelta rapida. Qualche suggerimento per farlo usare l'istanza esistente? Presumo che fosse l'intenzione di singleinstance.exe. Forse non è compatibile con Windows 10.
Jim Fell,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.