Windows 탐색기-상황에 맞는 메뉴에서 두 개의 파일을 비교합니까?


답변:


16

diff-ext 가 필요한 것처럼 들립니다 !

이 쉘 확장자 (diff-ext)를 사용하면 동일한 디렉토리에서 2 개 또는 3 개의 파일 (도구에 따라 다름)에 대한 파일 비교 도구를 시작하거나 나중에 비교할 수 있도록 파일을 "저장"할 수 있습니다. 비교 도구에 가장 최근에 사용한 (MRU) 파일 목록으로 작동합니다.

KDiff3 과 함께 사용하고 있지만 페이지에 사용할 수있는 다른 diff 도구가 많이 있습니다.

대체 텍스트


천만에요!
John T

내 창에서 제대로 작동하지 않았습니다. 7. diff.exe의 경로로 구성했으며 눈앞에서 깜박이는 것이 있습니다. 이 응용 프로그램은 전혀 인식하지 못합니까?
Anders Lindén

Win7에서 정상적으로 작동하지만 Meld를 ​​diff 도구로 사용하고 있습니다.
JimFred 2016 년

KDiff3에는 이미 컨텍스트 메뉴 확장이 통합 되어 있으므로 ( Kdiff3=> Compare) 빠르고 쉬운 것이 필요한 경우 충분할 수 있습니다.
user121391

나는 이것을 시도해야 할 수도 있지만, 나는 독점적으로 gvim을 사용하기 때문에 그것이 얼마나 잘 될지 확신하지 못한다.
Antony

8

다음은 오른쪽 클릭 컨텍스트 메뉴 항목을 추가하여 Meld 호출과 같은 사용자 정의 명령을 실행하고 두 파일을 비교하는 솔루션입니다.

배경 간단한 컨텍스트 메뉴 항목은 Windows 등록 (regedit)에서 수동으로 추가하거나 .reg 파일을 생성하여 쉽게 추가 할 수 있습니다 (아래 예 참조).

문제는 선택한 각 파일에 대해 명령이 실행된다는 것입니다. 이 문제를 해결하기위한 세 가지 솔루션이 있습니다.

  1. 셸 확장 사용 (복잡한)
  2. 응용 프로그램이 다른 전화를 잡는 지 확인하십시오 (복잡한)
  3. context-menu-handler (간단한) singleinstance.exe에서 사용하십시오 . 이 프로그램은 옵션 2를 제공합니다. 호출 된 다른 시간에서 인수를 수집 한 후 원하는 명령으로 전달합니다. 수집 할 통화를 수집하는 데 도움이되는 시간 제한 옵션을 사용할 수 있습니다. 자세한 내용을 보려면 링크를 따르십시오.

1 단계 context-menu-handler 에서 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와 명령 실행을 조정하십시오 (여기서는 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

나를 위해
일한

1
전반적으로, 나는이 구현을 좋아한다. 그러나 슬프게도 상황에 맞는 메뉴를 사용할 때마다 새로운 Meld 인스턴스가 만들어집니다. 기존 인스턴스를 사용하기위한 팁이 있습니까? 나는 그것이 의도 였다고 생각한다 singleinstance.exe. 아마도 Windows 10과 호환되지 않을 수 있습니다.
Jim Fell


0

사용자 정의 명령을 사용하여 배치 파일을 만든 다음에 바로 가기를 추가 할 수 있습니다 shell:sendto. 보너스로 레지스트리 변경도 피할 수 있습니다.

이 Stack Overflow answer 에서 영감을 얻었습니다 .

1a. 다음을 사용하여 새 파일을 작성하십시오.

    @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'

1b. 시작 명령을 변경하십시오 ( 예 : 비교 도구 및 후속 명령 행 인수에 대한 경로 변경).

  1. 배치 파일을 영구 디렉토리에 저장하십시오 (예 :) C:\Users\You\Compare With My Tool.cmd.

  2. Compare With My Tool.cmd안에 파일 바로 가기를 만듭니다 shell:sendto. 바로 가기 이름은 보내기 컨텍스트 메뉴에 표시됩니다. 셸에 나타나는 아이콘은 바로 가기 아이콘이며 파일 속성 메뉴를 사용하여 변경할 수 있습니다.

  3. 비교할 두 파일을 선택하고 마우스 오른쪽 단추를 클릭 한 후 보내기> 내 도구와 비교 (또는 바로 가기 이름을 지정한 파일)를 선택하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.