É fácil criar um item de menu de contexto do Windows Shell que utiliza um único arquivo como argumento. Veja esta pergunta para um exemplo.
No entanto, como você cria um item de menu de contexto que usa vários arquivos como argumentos? Digamos, para uma ferramenta diff-merge (no meu caso, o P4Merge), embora a mesma técnica também seja aplicável a outras aplicações.
Eu instalei o P4Merge, mas ele não adiciona um item ao menu de contexto automaticamente, então terei que fazê-lo manualmente.
Quando tentei usar:
"C:\Program Files\Perforce\p4merge.exe" %1 %2
como linha de comando, recebi um erro:
Erros: São necessários pelo menos dois arquivos. Não é possível abrir apenas um arquivo. O P4Merge precisa de 0, 2 ou 3 arquivos.
Quando tentei usar:
"C:\Program Files\Perforce\p4merge.exe" %0 %1
como linha de comando, ele abriu duas instâncias do P4Merge, uma para cada arquivo.
Parece que os nomes de arquivos corretos estão sendo transmitidos para% 0 e% 1, mas uma instância diferente do aplicativo P4Merge está sendo executada para cada um.
Atualmente, tenho a ferramenta DiffMerge do SourceGear, que possui um item no menu de contexto do Shell e funciona perfeitamente, pois eu posso selecionar dois arquivos e usar o item de menu de contexto para executar uma comparação neles. Estou tentando pesquisar no registro para ver quais argumentos o DiffMerge usa, mas não consegui encontrar uma linha de comando do DiffMerge que incluísse argumentos.