Windowsエクスプローラー-コンテキストメニューから2つのファイルを比較しますか?


18

Windowsエクスプローラーのコンテキストメニューから選択した2つのファイルを比較する方法はありますか?

回答:


16

diff-extが必要なようですね!

このシェル拡張(diff-ext)を使用すると、同じディレクトリにある2つまたは3つのファイル(ツールに応じて)のファイル比較ツールを起動したり、後で比較するためにファイルを保存したりできます。これは、比較ツールの外部の最新の使用済み(MRU)ファイルリストとして機能します。

私はKDiff3で使用していますが、使用できるページには他にもいくつかの差分ツールがあります。

代替テキスト


どういたしまして!
ジョンT

Windows 7ではうまくいきませんでした。diff.exeへのパスを設定しましたが、目の前で何かが点滅しているだけです。このアプリケーションの差分はまったく認識されていますか?
アンデルスリンデン

Win7では正常に動作しますが、差分ツールとしてMeldを使用しています。
ジムフレッド

KDiff3にはすでにコンテキストメニュー拡張機能が統合されているため(Kdiff3=> Compare)、何かをすばやく簡単に必要とする場合は、それで十分かもしれません。
user121391

私はこの行くを与えることがありますが、私はそうではないことを確認してアウトになりますどれだけ、独占的にgvimを使用
アントニー

8

右クリックコンテキストメニューエントリを追加してカスタムコマンド(Meldの呼び出しなど)を実行し、2つのファイルを比較する私のソリューションを次に示します。

背景 シンプルなコンテキストメニューエントリは、Windowsレジスタ(regedit)に簡単に追加できます:手動で、または.regファイルを作成して(以下の例を参照)。

問題は、選択した各ファイルに対してコマンドが実行されることです。これを解決する3つのソリューションがあります。

  1. シェル拡張機能を使用する(複雑)
  2. アプリケーションが異なる呼び出しをキャッチするようにします(複雑)
  3. context-menu-handlersingleinstance.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

私のために働いた...
AnthonyVO

1
全体的に、私はこの実装が好きです。ただし、悲しいことに、コンテキストメニューが使用されるたびにMeldの新しいインスタンスが作成されます。既存のインスタンスを使用するためのヒントはありますか?それが意図だったと思うsingleinstance.exe。多分それは、Windows 10と互換性がありません
ジムはフェル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.