Windows Gezgini - Bağlam menüsünden iki dosya farklı mı?


Yanıtlar:


16

Diff-ext'e ihtiyacınız var gibi görünüyor !

Bu kabuk uzantısı (diff-ext), aynı dizinde 2 veya 3 dosya (araca bağlı olarak) için dosya karşılaştırma aracını başlatmayı veya daha sonra karşılaştırma için bir dosyayı "kaydetmeyi" mümkün kılar. Karşılaştırma aracı için harici en son kullanılan (MRU) dosya listesi olarak işlev görür.

KDiff3 ile kullanıyorum , ancak sayfada kullanılabilecek diğer farklı araçlar var.

alternatif metin


Hoş geldin!
John T

Benim windows 7 de işe yaramadı. Diff.exe yolu ile yapılandırdı ve tüm aldığım bir şey gözlerimin önünde yanıp sönüyor. Bu uygulama tamamen farkında mı?
Anders Lindén

Win7 üzerinde Tamam çalışıyor ama fark aracım olarak Meld kullanıyorum.
JimFred

KDiff3 zaten zaten bir bağlam menüsü uzantısına sahiptir ( Kdiff3=> Compare), bu yüzden hızlı ve kolay bir şeye ihtiyacınız varsa, bu yeterli olabilir.
user121391 21:16

Bunu denemek zorunda kalabilirim, ama sadece gvim kullanıyorum, bu yüzden ne kadar iyi çıkacağından emin değilim
Antony

8

İşte benim özel bir komut (Meld çağırmak gibi) ve iki dosya diff çalıştırmak için bir Sağ Tıklama bağlam menü girişi eklemek için benim çözüm.

Arka Plan Basit kayıt menüsü girişleri Windows kaydına (regedit) kolayca eklenebilir: manuel olarak veya bir .reg dosyası oluşturarak (aşağıdaki örneğe bakın).

Sorun, komutun seçtiğiniz her dosya için çalıştırılmasıdır. Bunu çözmek için üç çözüm vardır:

  1. Kabuk uzantılarını kullanma (karmaşık)
  2. Uygulamanızın farklı çağrıları yakaladığından emin olun (karmaşık)
  3. Kullanım singleinstance.exegelen bağlam menüsünü-işleyici (basit). Bu program sizin için seçenek 2'yi yapar. Bağımsız değişkenler çağrıldığı farklı zamandan toplar ve bunları istediğiniz komuta iletir. Toplanacak çağrıların toplanmasına yardımcı olmak için bir zaman aşımı seçeneği mevcuttur. Daha fazla bilgi için bağlantıyı takip edin.

Adım 1 singleinstance.exe dosyasını bağlam-menü işleyicisinden indirin (ve ilişkili olmadığım yazara teşekkür edin)

Adım 2 (dosya ve klasör karşılaştırması için) : Aşağıdaki içeriğe sahip ".reg" uzantılı bir dosya oluşturun (İkonlu Meld örneği):

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 dosyası "Diff It!" Etiketli bir bağlam menüsü girişi oluşturur. tüm dosyalar ( *) ve Klasörler ( Folder) için. IconBir simge istemiyorsanız, simgesini içeren satırlar kaldırılabilir.

Programın yolunu singleinstance.exeve komut çalıştırmasını uyarlayın (burada C:\Program Files (x86)\Meld\Meld.exe. Geri boşlukların ve tırnak işaretlerinin kaçışını not edin

Adım 3.reg Dosyayı çalıştırın . Yönetici iseniz çift tıklamak işe yarayabilir. Aksi takdirde klasörünüzde bir yönetici komut istemi açın (explorer'da: Dosya> Komutu Aç> Komutu yönetici olarak aç. Veya Alt-F-M-A). .regKayıt defterine eklemek için dosyanın adını yazmanız yeterlidir .

Bu kadar.

(kaldırma) Kayıt defterindeki anahtarları manuel olarak silebilir veya .regaşağıdaki içeriğe sahip bir dosya oluşturabilirsiniz :

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\DiffIt_Files]

[-HKEY_CLASSES_ROOT\Folder\shell\DiffIt_Folders] 

Alternatif ContextEdit gibi bağlam menüsü girişlerini eklemek-düzenlemek-kaldırmak için bir yazılım kullanın (ancak kolayca simge ekleyemezsiniz). Bu durumda, komutun şöyle görünmesi için eğik çizgilerden ve tırnak işaretlerinden kaçmanıza gerek yoktur:

"c:\Bin\singleinstance.exe "%1" "C:\Program Files (x86)\Meld\Meld.exe" $files --si-timeout 400

Benim için çalıştı ...
AnthonyVO

1
Genel olarak, bu uygulamayı seviyorum. Ancak, ne yazık ki, bağlam menüsü her kullanıldığında yeni bir Meld örneği oluşturur. Mevcut örneği kullanmanın herhangi bir ipucu var mı? Bunun niyeti olduğunu varsayıyorum singleinstance.exe. Belki Windows 10 ile uyumlu değildir.
Jim Fell


0

Özel komutla bir toplu iş dosyası oluşturabilir, sonra içine bir kısayol ekleyebilirsiniz shell:sendto. Bonus olarak, kayıt defterini de değiştirmekten kaçınır.

İlham alan Bu Yığın Taşması cevabından , örneğin:

1 A. Şununla yeni bir dosya oluşturun:

    @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. Değişim start komutunu örneğin sizin karşılaştırmak aracı ve uygun olarak daha sonraki komut satırı argümanları yolunu değiştirmek.

  1. Toplu iş dosyasını kalıcı bir dizine kaydedin, örn C:\Users\You\Compare With My Tool.cmd.

  2. Compare With My Tool.cmdİçinde dosyanız için bir kısayol oluşturun shell:sendto. Kısayolun adı, Gönder içeriği menüsünde göreceğiniz addır. Kabukta görünen simge kısayolun simgesidir ve bunu dosya özellikleri menüsünü kullanarak değiştirebilirsiniz.

  3. Karşılaştırılacak iki dosyayı seçin, sağ tıklayın ve Gönder> Aracımla Karşılaştır'ı (veya kısayolunuzu adlandırdığınız her şeyi) seçin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.