Explorador de Windows: ¿difiere dos archivos del menú contextual?

Respuestas:

16

¡Parece que necesitas diff-ext !

Esta extensión de shell (diff-ext) permite iniciar la herramienta de comparación de archivos para 2 o 3 archivos (dependiendo de la herramienta) en el mismo directorio o "guardar" un archivo (s) para una comparación posterior. Actúa como la lista de archivos externos más recientes utilizados (MRU) para la herramienta de comparación.

Lo estoy usando con KDiff3 , pero hay una serie de otras herramientas de diferencias en la página con las que se puede usar.

texto alternativo

John T
fuente
¡Eres más que bienvenido!
John T
No funcionó bien en mi Windows 7. Lo configuré con la ruta a diff.exe y todo lo que obtengo es algo parpadeante frente a mis ojos. ¿Esta aplicación es consciente en absoluto?
Anders Lindén
Funciona bien en Win7 pero estoy usando Meld como mi herramienta de diferencias.
JimFred
KDiff3 ya tiene una extensión de menú contextual integrada ahora ( Kdiff3=> Compare), por lo que si solo necesita algo rápido y fácil, eso podría ser suficiente.
user121391
Puede que tenga que intentarlo, pero uso exclusivamente gvim, así que no estoy seguro de qué tan bien resultará
Antony
8

Aquí está mi solución para agregar una entrada del menú contextual del botón derecho para ejecutar un comando personalizado (como llamar a Meld) y diferenciar dos archivos.

Fondo Las entradas simples del menú contextual se pueden agregar fácilmente en el registro de Windows (regedit): manualmente o mediante la creación de un archivo .reg (consulte el ejemplo a continuación).

El problema es que el comando se ejecutará para cada archivo que seleccione. Hay tres soluciones para resolver esto:

  1. Usar extensiones de Shell (complicado)
  2. Asegúrese de que su aplicación reciba las diferentes llamadas (complicado)
  3. Usar singleinstance.exedesde context-menu-handler (simple). Este programa hace la opción 2 por ti. Recopila argumentos del momento diferente en que se llama y luego los pasa al comando que desea. Hay una opción de tiempo de espera disponible para ayudar a reunir las llamadas que se van a recopilar. Sigue el enlace para más información.

Paso 1 Descargue singleinstance.exe desde context-menu-handler (y agradezca al autor, con quien no estoy relacionado)

Paso 2 (para la comparación de archivos y carpetas) : cree un archivo con la extensión ".reg" con el siguiente contenido (ejemplo para Meld with a 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"

El archivo de registro crea una entrada de menú contextual con la etiqueta "Diff It!" para todos los archivos ( *) y para Carpetas ( Folder). Las líneas que contienen Iconpueden eliminarse si no desea un icono.

Adapte la ruta del programa singleinstance.exey la ejecución del comando (aquí C:\Program Files (x86)\Meld\Meld.exe. Observe el escape de los espacios de retroceso y las comillas

Paso 3 Ejecute el .regarchivo. Hacer doble clic en él podría funcionar si eres administrador. De lo contrario, abra un símbolo del sistema de administración en su carpeta (en el explorador: Archivo> Abrir comando> Abrir comando como administrador. O Alt-F-M-A). Simplemente escriba el nombre del .regarchivo para agregarlo al registro.

Eso es.

(desinstalar) Puede eliminar las claves manualmente en el registro o crear un .regarchivo con el siguiente contenido:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]

[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders] 

Alternativa Use un software para agregar, editar y eliminar entradas del menú contextual como ContextEdit (pero no puede agregar íconos fácilmente). En este caso, no necesita escapar de las barras y las comillas para que el comando se vea así:

"c:\Bin\singleinstance.exe "%1" "C:\Program Files (x86)\Meld\Meld.exe" $files --si-timeout 400
e-malito
fuente
Trabajó para mí ...
AnthonyVO
1
En general, me gusta esta implementación. Sin embargo, lamentablemente, crea una nueva instancia de Meld cada vez que se utiliza el menú contextual. ¿Algún consejo para que use la instancia existente? Supongo que esa era la intención de singleinstance.exe. Tal vez no sea compatible con Windows 10.
Jim Fell