답변:
이 쉘 확장자 (diff-ext)를 사용하면 동일한 디렉토리에서 2 개 또는 3 개의 파일 (도구에 따라 다름)에 대한 파일 비교 도구를 시작하거나 나중에 비교할 수 있도록 파일을 "저장"할 수 있습니다. 비교 도구에 가장 최근에 사용한 (MRU) 파일 목록으로 작동합니다.
KDiff3 과 함께 사용하고 있지만 페이지에 사용할 수있는 다른 diff 도구가 많이 있습니다.
Kdiff3
=> Compare
) 빠르고 쉬운 것이 필요한 경우 충분할 수 있습니다.
다음은 오른쪽 클릭 컨텍스트 메뉴 항목을 추가하여 Meld 호출과 같은 사용자 정의 명령을 실행하고 두 파일을 비교하는 솔루션입니다.
배경 간단한 컨텍스트 메뉴 항목은 Windows 등록 (regedit)에서 수동으로 추가하거나 .reg 파일을 생성하여 쉽게 추가 할 수 있습니다 (아래 예 참조).
문제는 선택한 각 파일에 대해 명령이 실행된다는 것입니다. 이 문제를 해결하기위한 세 가지 솔루션이 있습니다.
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
singleinstance.exe
. 아마도 Windows 10과 호환되지 않을 수 있습니다.
사용자 정의 명령을 사용하여 배치 파일을 만든 다음에 바로 가기를 추가 할 수 있습니다 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. 시작 명령을 변경하십시오 ( 예 : 비교 도구 및 후속 명령 행 인수에 대한 경로 변경).
배치 파일을 영구 디렉토리에 저장하십시오 (예 :) C:\Users\You\Compare With My Tool.cmd
.
Compare With My Tool.cmd
안에 파일 바로 가기를 만듭니다 shell:sendto
. 바로 가기 이름은 보내기 컨텍스트 메뉴에 표시됩니다. 셸에 나타나는 아이콘은 바로 가기 아이콘이며 파일 속성 메뉴를 사용하여 변경할 수 있습니다.
비교할 두 파일을 선택하고 마우스 오른쪽 단추를 클릭 한 후 보내기> 내 도구와 비교 (또는 바로 가기 이름을 지정한 파일)를 선택하십시오.