Windows Explorer - Diff dua file dari menu konteks?

18

Apakah ada cara untuk membedakan dua file yang dipilih dari menu konteks di Windows Explorer?

Leandand00
sumber

Jawaban:

16

Sepertinya Anda perlu diff-ext !

Ekstensi shell ini (diff-ext) memungkinkan untuk meluncurkan alat perbandingan file untuk 2 atau 3 file (tergantung pada alat) di direktori yang sama atau "menyimpan" file untuk perbandingan nanti. Karena berfungsi sebagai daftar file eksternal (MRU) terbaru yang digunakan untuk alat perbandingan.

Saya menggunakannya dengan KDiff3 , tetapi ada sejumlah alat berbeda pada halaman yang dapat digunakan.

teks alternatif

John T
sumber
Anda sangat diterima!
John T
Tidak berfungsi dengan baik di windows saya 7. Saya telah mengonfigurasinya dengan jalur ke diff.exe dan yang saya dapatkan adalah sesuatu yang berkedip di depan mata saya. Apakah aplikasi ini sama sekali berbeda?
Anders Lindén
Berfungsi OK pada Win7 tapi saya menggunakan Meld sebagai alat diff saya.
JimFred
KDiff3 sudah memiliki ekstensi menu konteks terintegrasi sekarang ( Kdiff3=> Compare), jadi jika Anda hanya perlu sesuatu yang cepat & mudah, itu mungkin sudah cukup.
user121391
Saya mungkin harus mencoba ini, tetapi saya menggunakan gvim secara eksklusif, jadi tidak yakin seberapa baik
hasilnya
8

Inilah solusi saya untuk menambahkan entri menu konteks Klik Kanan untuk menjalankan perintah khusus (seperti memanggil Meld) dan membedakan dua file.

Latar Belakang Entri menu konteks sederhana dapat dengan mudah ditambahkan dalam register Windows (regedit): secara manual atau dengan membuat file .reg (lihat contoh di bawah).

Masalahnya adalah bahwa perintah akan dijalankan untuk setiap file yang Anda pilih. Ada tiga solusi untuk mengatasi ini:

  1. Gunakan ekstensi Shell (rumit)
  2. Pastikan aplikasi Anda menangkap panggilan yang berbeda (rumit)
  3. Gunakan singleinstance.exedari konteks-menu-handler (sederhana). Program ini melakukan opsi 2 untuk Anda. Itu mengumpulkan argumen dari waktu yang berbeda itu dipanggil dan kemudian meneruskannya ke perintah yang Anda inginkan. Opsi batas waktu tersedia untuk membantu panggilan dikumpulkan. Ikuti tautan untuk info lebih lanjut.

Langkah 1 Unduh singleinstance.exe dari konteks-menu-handler (dan terima kasih penulis, kepada siapa saya tidak terkait)

Langkah 2 (untuk perbandingan file dan folder) : Buat file dengan ekstensi ".reg" dengan konten berikut (contoh untuk Meld dengan Ikon):

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"

File reg membuat entri menu konteks berlabel "Diff It!" untuk semua file ( *) dan untuk Folder ( Folder). Baris yang berisi Icondapat dihapus jika Anda tidak ingin ikon.

Adaptasi jalur program singleinstance.exedan jalankan perintah (di sini C:\Program Files (x86)\Meld\Meld.exe. Perhatikan melarikan diri dari backspaces dan tanda kutip

Langkah 3 Jalankan .regfile. Mengklik dua kali mungkin berfungsi jika Anda adalah admin. Jika tidak, buka prompt perintah admin di folder Anda (di explorer: File> Open Command> Open Command as admin. Atau Alt-F-M-A). Cukup Ketikkan nama .regfile untuk menambahkannya ke registri.

Itu dia.

(uninstall) Anda dapat menghapus kunci secara manual di registri atau membuat .regfile dengan konten berikut:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]

[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders] 

Alternatif Gunakan perangkat lunak untuk menambah-mengedit-menghapus entri menu konteks seperti ContextEdit (tetapi tidak dapat menambahkan ikon dengan mudah). Dalam hal ini Anda tidak perlu melarikan diri dari garis miring dan tanda kutip sehingga perintahnya akan terlihat seperti ini:

"c:\Bin\singleinstance.exe "%1" "C:\Program Files (x86)\Meld\Meld.exe" $files --si-timeout 400
e-malito
sumber
Bekerja untuk saya ...
AnthonyVO
1
Secara keseluruhan, saya suka implementasi ini. Namun, sayangnya, ia menciptakan instance baru Meld setiap kali menu konteks digunakan. Adakah tips untuk membuatnya menggunakan instance yang ada? Saya berasumsi bahwa itulah maksud dari singleinstance.exe. Mungkin itu tidak kompatibel dengan Windows 10.
Jim Fell