Crear un elemento del menú contextual del Shell de Windows que tome un solo archivo como argumento es fácil. Vea esta pregunta para un ejemplo.
Sin embargo, ¿cómo se crea un elemento del menú contextual que toma varios archivos como argumentos? Digamos, para una herramienta de combinación de diferencias (en mi caso P4Merge), aunque la misma técnica sin duda sería aplicable también para otras aplicaciones.
He instalado P4Merge pero no agrega un elemento al menú contextual automáticamente, por lo que tendré que hacerlo manualmente.
Cuando intenté usar:
"C:\Program Files\Perforce\p4merge.exe" %1 %2
como la línea de comando recibí un error:
Errores: se necesitan al menos dos archivos. No se puede abrir solo un archivo. P4Merge necesita 0, 2 o 3 archivos.
Cuando intenté usar:
"C:\Program Files\Perforce\p4merge.exe" %0 %1
Como línea de comando, abrió dos instancias de P4Merge, una para cada archivo.
Parece que los nombres de archivo correctos se están pasando a% 0 y% 1, pero se está ejecutando una instancia diferente de la aplicación P4Merge para cada uno.
Actualmente tengo la herramienta DiffMerge de SourceGear que tiene un elemento en el menú contextual de Shell y que funciona muy bien, ya que puedo seleccionar dos archivos y usar el elemento del menú contextual para ejecutar una diferencia en ellos. Intenté buscar en el registro para ver qué argumentos usa DiffMerge, pero no pude encontrar una línea de comandos de DiffMerge que incluyera argumentos.