Провідник Windows - чим відрізняти два файли від контекстного меню?


18

Чи є можливість відрізняти два вибрані файли від контекстного меню в Провіднику Windows?

Відповіді:


16

Звучить так, що вам потрібен різний домен !

Це розширення оболонки (diff-ext) дозволяє запустити інструмент порівняння файлів для 2 або 3 файлів (залежно від інструменту) в одному каталозі або "зберегти" файл (и) для подальшого порівняння. Він виступає як список останніх використаних зовнішніх файлів (MRU) для інструменту порівняння.

Я використовую його з KDiff3 , але на сторінці є ряд інших інструментів для розгляду.

alt текст


Ви більше ніж ласкаво просимо!
Джон Т

Не добре працював на моєму Windows 7. Я налаштував це на шлях до diff.exe, і все, що я отримую, - це щось моргає перед моїми очима. Чи ця програма взагалі відома?
Андерс Лінден

Працює добре на Win7, але я використовую Meld як свій різний інструмент.
JimFred

У KDiff3 вже вбудоване розширення контекстного меню ( Kdiff3=> Compare), тож якщо вам просто потрібно щось швидке та легке, цього може бути достатньо.
користувач121391

Мені, можливо, доведеться передати це, але я використовую виключно gvim, тому не впевнений, наскільки добре це вийде
Антоній

8

Ось моє рішення додати запис контекстного меню правою кнопкою миші для запуску користувацької команди (наприклад, виклик Meld) та розходження двох файлів.

Фон Прості записи контекстного меню можна легко додати до реєстру Windows (regedit): вручну або створивши .reg файл (див. Приклад нижче).

Проблема полягає в тому, що команда буде виконуватися для кожного вибраного файла. Існує три рішення для вирішення цього питання:

  1. Використовуйте розширення Shell (складні)
  2. Переконайтеся, що ваша програма сприймає різні дзвінки (складні)
  3. Використання singleinstance.exeз контекстного меню-обробника (простий). Ця програма робить варіант 2 для вас. Він збирає аргументи за різний час, коли він викликається, а потім передає їх потрібній команді. Для збору дзвінків, які потрібно збирати, доступний варіант очікування. Для отримання додаткової інформації перейдіть за посиланням.

Крок 1 Завантажте singleinstan.exe з контекстного меню-обробника (і дякую автору, до якого я не пов’язаний)

Крок 2 (для порівняння файлів і папок) : Створіть файл із розширенням ".reg" із наступним вмістом (приклад для Meld with 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"

Файл reg створює запис контекстного меню з написом "Diff It!" для всіх файлів ( *) та для папок ( Folder). Рядки, що містять, Iconможна видалити, якщо ви не хочете піктограми.

Адаптуйте шлях програми singleinstance.exeта запустіть команду (тут 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

Працював для мене ...
AnthonyVO

1
В цілому мені подобається ця реалізація. Однак, на жаль, він створює новий екземпляр Meld щоразу, коли використовується контекстне меню. Будь-які поради щодо його використання для використання наявного екземпляра? Я припускаю, що це був намір singleinstance.exe. Можливо, це не сумісно з Windows 10.
Jim Fell


0

Ви можете створити пакетний файл за допомогою спеціальної команди, а потім додати до нього ярлик shell:sendto. Як бонус, це також дозволяє уникнути зміни реєстру.

Натхненний цією відповіддю на переповнення стека , наприклад:

1а. Створіть новий файл за допомогою:

    @echo off
    setlocal
    start "Compare files" /B /MIN "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe" /diff %2 %1 First:'%2' Second:'%1'

1б. Змініть команду start , наприклад, змініть шлях до інструменту порівняння та наступних аргументів командного рядка, якщо це доречно.

  1. Збережіть пакетний файл у постійному каталозі, наприклад C:\Users\You\Compare With My Tool.cmd.

  2. Створіть ярлик до Compare With My Tool.cmdфайлу всередині shell:sendto. Назва ярлика - це те, що ви побачите в контекстному меню «Надіслати до». Піктограма, що з’являється в оболонці, - це значок ярлика, і ви можете змінити це за допомогою меню властивостей файлу.

  3. Виберіть два файли для порівняння, клацніть правою кнопкою миші та виберіть Надіслати до> Порівняти з моїм інструментом (або те, що ви назвали ярликом)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.