Ответы:
Похоже, вам нужно diff-ext !
Это расширение оболочки (diff-ext) позволяет запустить инструмент сравнения файлов для 2 или 3 файлов (в зависимости от инструмента) в одном каталоге или «сохранить» файл (ы) для последующего сравнения. Он действует как внешний список самых последних использованных файлов (MRU) для инструмента сравнения.
Я использую его с KDiff3 , но на странице есть ряд других инструментов сравнения, с которыми его можно использовать.
Kdiff3
=> Compare
), так что если вам нужно что-то быстрое и легкое, этого может быть достаточно.
Вот мое решение, чтобы добавить пункт контекстного меню, вызываемый правой кнопкой мыши, для запуска пользовательской команды (например, вызова Meld) и сравнения двух файлов.
Фон Простые пункты контекстного меню могут быть легко добавлены в регистр Windows (regedit): вручную или путем создания файла .reg (см. Пример ниже).
Проблема в том, что команда будет выполняться для каждого выбранного вами файла. Есть три решения для решения этой проблемы:
singleinstance.exe
из context-menu-handler (просто). Эта программа делает вариант 2 для вас. Он собирает аргументы в разное время, когда он вызывается, а затем передает их команде, которую вы хотите. Опция тайм-аута, чтобы помочь собрать звонки, которые будут собраны. Перейдите по ссылке для получения дополнительной информации.Шаг 1 Загрузите файл singleinstance.exe из обработчика контекстного меню (и спасибо автору, с которым я не связан)
Шаг 2 (для сравнения файлов и папок) : Создайте файл с расширением «.reg» со следующим содержимым (пример для Meld с иконкой):
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"
В reg-файле создайте пункт контекстного меню с надписью «Diff It!» для всех файлов ( *
) и для папок ( Folder
). Строки, содержащие Icon
значок, могут быть удалены, если вам не нужен значок.
Адаптируйте путь к программе singleinstance.exe
и команде run (здесь C:\Program Files (x86)\Meld\Meld.exe
. Обратите внимание на экранирование обратных символов и кавычек
Шаг 3 Запустите .reg
файл. Двойной щелчок по нему может сработать, если вы являетесь администратором. В противном случае откройте командную строку администратора в своей папке (в проводнике: Файл> Открыть команду> Открыть команду как администратор. Или Alt-F-M-A
). Просто введите имя .reg
файла, чтобы добавить его в реестр.
Вот и все.
(удалить) Вы можете удалить ключи вручную в реестре или создать .reg
файл со следующим содержимым:
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]
[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders]
Альтернатива Используйте программное обеспечение для добавления-редактирования-удаления записей контекстного меню, таких как ContextEdit (но не можете легко добавить значок). В этом случае вам не нужно экранировать косую черту и кавычки, чтобы команда выглядела так:
"c:\Bin\singleinstance.exe "%1" "C:\Program Files (x86)\Meld\Meld.exe" $files --si-timeout 400
singleinstance.exe
. Может быть, это не совместимо с Windows 10.
Beyond Compare и WinMerge также могут сделать это, если вы включите Shell Integration во время установки.