Windows Explorer - แตกไฟล์สองไฟล์จากเมนูบริบทหรือไม่


คำตอบ:


16

เสียงเหมือนที่คุณต้องการdiff-ext !

ส่วนขยายของเชลล์นี้ (diff-ext) ทำให้สามารถเรียกใช้เครื่องมือเปรียบเทียบไฟล์สำหรับ 2 หรือ 3 ไฟล์ (ขึ้นอยู่กับเครื่องมือ) ในไดเรกทอรีเดียวกันหรือ "บันทึก" ไฟล์สำหรับการเปรียบเทียบในภายหลัง มันทำหน้าที่เป็นรายการไฟล์ที่ใช้ล่าสุด (MRU) ภายนอกสำหรับเครื่องมือเปรียบเทียบ

ฉันใช้กับKDiff3แต่มีเครื่องมือ diff อื่น ๆ จำนวนมากบนหน้าเว็บที่สามารถใช้ได้

ข้อความแสดงแทน


คุณเป็นมากกว่ายินดีต้อนรับ!
John T

ใช้งานไม่ได้กับ windows 7 ของฉันฉันได้กำหนดค่าด้วยเส้นทางไปยัง diff.exe และสิ่งที่ฉันได้รับคือสิ่งที่กระพริบตาต่อหน้าฉัน แอปพลิเคชันนี้แตกต่างจากการรับรู้ทั้งหมดหรือไม่?
Anders Lindén

ใช้งานได้กับ Win7 แต่ฉันใช้ Meld เป็นเครื่องมือ diff ของฉัน
JimFred

KDiff3 มีส่วนขยายเมนูบริบทรวมอยู่ในขณะนี้ ( Kdiff3=> Compare) ดังนั้นหากคุณต้องการบางสิ่งที่ง่ายและรวดเร็วนั่นอาจจะเพียงพอ
user121391

ฉันอาจต้องใช้เวลานี้ แต่ฉันใช้ gvim แบบเอกสิทธิ์เฉพาะบุคคลดังนั้นไม่แน่ใจว่าจะกลายเป็นดีแค่ไหน
แอนโทนี

8

นี่คือทางออกของฉันในการเพิ่มรายการเมนูบริบทคลิกขวาเพื่อเรียกใช้คำสั่งที่กำหนดเอง (เช่นการเรียก Meld) และแตกต่างกันสองไฟล์

พื้นหลัง สามารถเพิ่มรายการเมนูบริบทอย่างง่ายใน Windows register (regedit): ด้วยตนเองหรือโดยการสร้างไฟล์. reg (ดูตัวอย่างด้านล่าง)

ปัญหาคือว่าคำสั่งจะถูกเรียกใช้สำหรับแต่ละไฟล์ที่คุณเลือก มีสามวิธีในการแก้ปัญหานี้:

  1. ใช้ส่วนขยายของเชลล์ (ซับซ้อน)
  2. ตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณรับสายที่แตกต่าง (ซับซ้อน)
  3. ใช้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

ทำงานให้ฉัน ...
AnthonyVO

1
โดยรวมแล้วฉันชอบการใช้งานนี้ อย่างไรก็ตามน่าเศร้าที่มันสร้างอินสแตนซ์ใหม่ของ Meld ทุกครั้งที่ใช้เมนูบริบท มีคำแนะนำในการใช้อินสแตนซ์ที่มีอยู่หรือไม่ singleinstance.exeฉันคิดว่าเป็นความตั้งใจของ อาจจะเข้ากันไม่ได้กับ Windows 10
Jim Fell


0

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 เปลี่ยนคำสั่งเริ่มต้นเช่นเปลี่ยนพา ธ เป็นเครื่องมือเปรียบเทียบของคุณและอาร์กิวเมนต์บรรทัดคำสั่งถัดไปตามความเหมาะสม

  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.