มีวิธีใดบ้างที่จะแตกต่างของไฟล์ที่เลือกสองไฟล์จากเมนูบริบทใน Windows Explorer
มีวิธีใดบ้างที่จะแตกต่างของไฟล์ที่เลือกสองไฟล์จากเมนูบริบทใน Windows Explorer
คำตอบ:
เสียงเหมือนที่คุณต้องการdiff-ext !
ส่วนขยายของเชลล์นี้ (diff-ext) ทำให้สามารถเรียกใช้เครื่องมือเปรียบเทียบไฟล์สำหรับ 2 หรือ 3 ไฟล์ (ขึ้นอยู่กับเครื่องมือ) ในไดเรกทอรีเดียวกันหรือ "บันทึก" ไฟล์สำหรับการเปรียบเทียบในภายหลัง มันทำหน้าที่เป็นรายการไฟล์ที่ใช้ล่าสุด (MRU) ภายนอกสำหรับเครื่องมือเปรียบเทียบ
ฉันใช้กับKDiff3แต่มีเครื่องมือ diff อื่น ๆ จำนวนมากบนหน้าเว็บที่สามารถใช้ได้
Kdiff3
=> Compare
) ดังนั้นหากคุณต้องการบางสิ่งที่ง่ายและรวดเร็วนั่นอาจจะเพียงพอ
นี่คือทางออกของฉันในการเพิ่มรายการเมนูบริบทคลิกขวาเพื่อเรียกใช้คำสั่งที่กำหนดเอง (เช่นการเรียก Meld) และแตกต่างกันสองไฟล์
พื้นหลัง สามารถเพิ่มรายการเมนูบริบทอย่างง่ายใน Windows register (regedit): ด้วยตนเองหรือโดยการสร้างไฟล์. reg (ดูตัวอย่างด้านล่าง)
ปัญหาคือว่าคำสั่งจะถูกเรียกใช้สำหรับแต่ละไฟล์ที่คุณเลือก มีสามวิธีในการแก้ปัญหานี้:
singleinstance.exe
จากcontext-menu-handler (ง่าย) โปรแกรมนี้มีตัวเลือก 2 สำหรับคุณ มันรวบรวมข้อโต้แย้งจากเวลาที่แตกต่างกันที่มันถูกเรียกแล้วส่งผ่านเหล่านี้ไปยังคำสั่งที่คุณต้องการ มีตัวเลือกการหมดเวลาเพื่อช่วยรวบรวมการโทร ตามลิงค์สำหรับข้อมูลเพิ่มเติมขั้นตอนที่ 1ดาวน์โหลด singleinstance.exe จากcontext-menu-handler (และขอขอบคุณผู้เขียนคนที่ฉันไม่เกี่ยวข้อง)
ขั้นตอนที่ 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
หมายเหตุการหลบหนีของ backspaces และเครื่องหมายคำพูด
ขั้นตอนที่ 3เรียกใช้.reg
ไฟล์ คลิกสองครั้งที่มันอาจทำงานถ้าคุณเป็นผู้ดูแล มิฉะนั้นให้เปิดพรอมต์คำสั่งผู้ดูแลระบบในโฟลเดอร์ของคุณ (ใน explorer: File> Open Command> Open Command เป็นผู้ดูแลระบบหรือ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
นอกเหนือจากการเปรียบเทียบและWinMergeสามารถทำได้หากคุณเปิดใช้งานการผสานเชลล์ในระหว่างการติดตั้ง
shell:sendto
คุณสามารถสร้างไฟล์ชุดคำสั่งที่กำหนดเองแล้วเพิ่มทางลัดไปใน เป็นโบนัสสิ่งนี้หลีกเลี่ยงการเปลี่ยนแปลงรีจิสทรีด้วย
แรงบันดาลใจจากคำตอบของ Stack Overflowเช่น:
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
ชื่อของทางลัดคือสิ่งที่คุณจะเห็นในเมนูบริบทส่งไปที่ ไอคอนที่ปรากฏในเปลือกเป็นไอคอนของทางลัดและคุณสามารถเปลี่ยนแปลงได้โดยใช้เมนูคุณสมบัติของไฟล์
เลือกสองไฟล์ที่จะเปรียบเทียบคลิกขวาและเลือกส่งไปที่> เปรียบเทียบด้วยเครื่องมือของฉัน (หรืออะไรก็ตามที่คุณตั้งชื่อทางลัด)