Windows Explorer - Difere dois arquivos do menu de contexto?


Respostas:


16

Parece que você precisa do diff-ext !

Essa extensão do shell (diff-ext) possibilita iniciar a ferramenta de comparação de arquivos para 2 ou 3 arquivos (dependendo da ferramenta) no mesmo diretório ou "salvar" um arquivo para comparação posterior. Ele atua como lista de arquivos externos mais recentes usados ​​(MRU) para a ferramenta de comparação.

Estou usando-o com o KDiff3 , mas existem várias outras ferramentas diff na página com as quais ele pode ser usado.

texto alternativo


Você é mais que bem vindo!
John T

Não funcionou bem no meu Windows 7. Eu o configurei com o caminho para diff.exe e tudo o que recebo é algo piscando diante dos meus olhos. Este aplicativo está ciente?
Anders Lindén

Funciona bem no Win7, mas estou usando o Meld como minha ferramenta de comparação.
JimFred

O KDiff3 já tem uma extensão de menu de contexto integrada agora ( Kdiff3=> Compare); portanto, se você precisar de algo rápido e fácil, isso pode ser suficiente.
user121391

Talvez eu tenha que dar a esta, mas eu uso exclusivamente gvim, então não tenho certeza o quão bem que vai sair
Antony

8

Aqui está minha solução para adicionar uma entrada de menu de contexto do botão direito para executar um comando personalizado (como chamar Meld) e diferenciar dois arquivos.

Background Entradas simples do menu de contexto podem ser facilmente adicionadas no registro do Windows (regedit): manualmente ou criando um arquivo .reg (veja o exemplo abaixo).

O problema é que o comando será executado para cada arquivo que você selecionar. Existem três soluções para resolver isso:

  1. Use extensões do Shell (complicadas)
  2. Verifique se o aplicativo atende as diferentes chamadas (complicadas)
  3. Use a singleinstance.exepartir do contexto-menu-manipulador (simples). Este programa faz a opção 2 para você. Ele coleta argumentos a partir do momento em que é chamado e depois os passa para o comando desejado. Está disponível uma opção de tempo limite para ajudar a coletar chamadas a serem coletadas. Siga o link para mais informações.

Etapa 1 Baixe singleinstance.exe a partir de context-menu-handler (e agradeça ao autor, com quem não estou relacionado)

Etapa 2 (para comparação de arquivos e pastas) : Crie um arquivo com a extensão ".reg" com o seguinte conteúdo (exemplo: Meld com um ícone):

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"

O arquivo reg cria uma entrada no menu de contexto chamada "Diff It!" para todos os arquivos ( *) e para pastas ( Folder). As linhas que contêm o Iconpodem ser removidas se você não quiser um ícone.

Adapte o caminho do programa singleinstance.exee a execução do comando (aqui C:\Program Files (x86)\Meld\Meld.exe. Observe o escape dos backspaces e as aspas

Etapa 3 Execute o .regarquivo. Clicar duas vezes nele pode funcionar se você for administrador. Caso contrário, abra um prompt de comando admin na sua pasta (no explorer: Arquivo> Abrir Comando> Abrir Comando como admin. Ou Alt-F-M-A). Basta digitar o nome do .regarquivo para adicioná-lo ao registro.

É isso aí.

(desinstalação) Você pode excluir as chaves manualmente no registro ou criar um .regarquivo com o seguinte conteúdo:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]

[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders] 

Alternativa Use um software para adicionar, editar e remover entradas do menu de contexto, como ContextEdit (mas não é possível adicionar ícones facilmente). Nesse caso, você não precisa escapar das barras e das aspas para que o comando fique assim:

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

Trabalhou para mim ...
AnthonyVO

1
No geral, eu gosto desta implementação. No entanto, infelizmente, ele cria uma nova instância do Meld toda vez que o menu de contexto é usado. Alguma dica para fazê-lo usar a instância existente? Presumo que essa era a intenção singleinstance.exe. Talvez não seja compatível com o Windows 10.
Jim caiu

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.