Windows Explorer - Zwei Dateien aus dem Kontextmenü unterscheiden?


Antworten:


16

Klingt wie Sie brauchen diff-ext !

Diese Shell-Erweiterung (diff-ext) ermöglicht es, das Dateivergleichstool für 2 oder 3 Dateien (je nach Tool) im selben Verzeichnis zu starten oder eine Datei (en) für einen späteren Vergleich zu "speichern". Es fungiert als externe Liste der zuletzt verwendeten Dateien (MRU) für das Vergleichstool.

Ich verwende es mit KDiff3 , aber es gibt eine Reihe anderer Diff-Tools auf der Seite, mit denen es verwendet werden kann.

Alt-Text


Du bist mehr als willkommen!
John T

Funktionierte unter Windows 7 nicht gut. Ich habe es mit dem Pfad zu diff.exe konfiguriert und alles, was ich bekomme, ist, dass etwas vor meinen Augen blinkt. Ist dieser Anwendungsunterschied überhaupt bekannt?
Anders Lindén

Funktioniert unter Win7 einwandfrei, aber ich verwende Meld als Diff-Tool.
JimFred

In KDiff3 ist bereits eine Kontextmenü-Erweiterung integriert ( Kdiff3=> Compare). Wenn Sie also nur schnell und einfach etwas benötigen, ist dies möglicherweise ausreichend.
user121391

Möglicherweise muss ich es versuchen, aber ich verwende ausschließlich gvim. Ich bin mir nicht sicher, wie gut das ausgehen wird
Antony,

8

Hier ist meine Lösung, um einen Kontextmenüeintrag mit der rechten Maustaste hinzuzufügen, um einen benutzerdefinierten Befehl (wie das Aufrufen von Meld) auszuführen und zwei Dateien zu unterscheiden.

Hintergrund Einfache Kontextmenüeinträge können einfach im Windows-Register (regedit) hinzugefügt werden: manuell oder durch Erstellen einer REG-Datei (siehe Beispiel unten).

Das Problem ist, dass der Befehl für jede ausgewählte Datei ausgeführt wird. Es gibt drei Lösungen, um dies zu lösen:

  1. Shell-Erweiterungen verwenden (kompliziert)
  2. Stellen Sie sicher, dass Ihre Anwendung die verschiedenen Anrufe abfängt (kompliziert)
  3. Verwendung singleinstance.exeaus dem Kontextmenü-Handler (einfach). Dieses Programm führt Option 2 für Sie aus. Es sammelt Argumente aus der unterschiedlichen Zeit, zu der es aufgerufen wird, und übergibt diese dann an den gewünschten Befehl. Eine Timeout-Option hilft beim Sammeln von zu sammelnden Anrufen. Folgen Sie dem Link für weitere Informationen.

Schritt 1 Laden Sie singleinstance.exe vom Kontextmenü-Handler herunter (und danken Sie dem Autor, mit dem ich nicht verwandt bin)

Schritt 2 (zum Datei- und Ordnervergleich) : Erstellen Sie eine Datei mit der Endung ".reg" mit folgendem Inhalt (Beispiel für Meld mit einem Icon):

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"

Die reg-Datei erstellt einen Kontextmenüeintrag mit der Bezeichnung "Diff It!" für alle Dateien (* ) und für Ordner ( Folder). Die Zeilen mit dem Iconkönnen entfernt werden, wenn Sie kein Symbol möchten.

Passen Sie den Pfad des Programms an singleinstance.exe und die Befehlsausführung an (hier C:\Program Files (x86)\Meld\Meld.exe. Beachten Sie das Entweichen der Backspaces und der Anführungszeichen

Schritt 3 Führen Sie die aus.reg Datei aus. Ein Doppelklick darauf könnte funktionieren, wenn Sie Administrator sind. Öffnen Sie andernfalls eine Administrator-Eingabeaufforderung in Ihrem Ordner (im Explorer: Datei> Befehl öffnen> Befehl als Administrator öffnen oder Alt-F-M-A). Geben Sie einfach den Namen der .regDatei ein, um sie zur Registrierung hinzuzufügen.

Das ist es.

(Deinstallation) Sie können die Schlüssel entweder manuell in der Registrierung löschen oder eine .regDatei mit folgendem Inhalt erstellen :

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]

[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders] 

Alternative Verwenden Sie eine Software zum Hinzufügen, Bearbeiten und Entfernen von Kontextmenüeinträgen wie ContextEdit (das Hinzufügen von Symbolen ist jedoch nicht einfach). In diesem Fall brauchen Sie die Schrägstriche und Anführungszeichen nicht zu umgehen, damit der Befehl folgendermaßen aussieht:

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

Arbeitete für mich ...
AnthonyVO

1
Insgesamt gefällt mir diese Implementierung. Leider wird jedes Mal, wenn das Kontextmenü verwendet wird, eine neue Instanz von Meld erstellt. Gibt es Tipps, wie Sie die vorhandene Instanz verwenden können? Ich nehme an, das war die Absicht von singleinstance.exe. Vielleicht ist es nicht kompatibel mit Windows 10.
Jim Fell

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.