Visual Studioで2つのファイルを比較する


430

2つのファイルまたは2つのバージョンのファイルを比較するためのVS 2012の新しい比較ツールを見ました。私はそれが好きです。しかし、TFSを使用していないので、見つけようとしました。VSに組み込み機能があり、TFSがない2つのファイルを比較する方法はありますか?


1
さらに使用するためのコメントとして:vs2015で作業している場合は、このリンクを使用してください:visualstudio.com/en-us/docs/tfvc/compare-files
Elnaz

なお、これはしたがって、私が提供している、まだVS 2017に適用されます答え快適に、この問題に対処する方法について説明します。
マット・

2
どの回答も、Visual Studioで既に開かれている2つのファイルを比較できません。
user3454439 2018年

1
ここでは、この機能のためにしてください投票:developercommunity.visualstudio.com/content/idea/619706/...
Happypig375

VS2017とVS2019では、比較ファイルツールバーが開いていても使用方法がわかりません...今すぐVSCodeを使用して、2つのファイルを開き、両方を選択して、コンテキストメニュー->選択した比較を選択します。
jw_

回答:


809

devenv.exe /diff list1.txt list2.txtコマンドプロンプトから呼び出すか、Visual Studioインスタンスが既に実行されている場合はTools.DiffFiles、コマンドウィンドウに次のように入力して、ファイル名を入力します。

Using Tools.DiffFiles from Visual Studio Command window


15
この差分ツールには、左にコピー、右にコピーなどの便利な機能がありますか?作業用コピーをサーバーバージョンと比較するとき、変更の一部を元に戻したい場合があり、手動でコピーを貼り付ける必要があります。
サミュエル

118
なぜこの機能はVS UIから隠されているのですか?これは... 2つのファイルを比較するのが最も簡単で効果的な方法である
eka808

76
Visual Studioを初めて使用する場合は、[表示]> [その他のウィンドウ]> [コマンドウィンドウ(VS Pro 2013)]またはCTRL + ALT + Aを使用して、コマンドウィンドウを開くことができます
Cleanshooter

35
そのような残念なVSには、この非常に基本的な機能のためのメニュー項目がありません。多くのIDEのエディターが行います。
dewd

15
注: Visual Studio 2015では、次の場所にあります:表示->ツールバー->ファイルの比較。クイック起動ウィンドウに「compare」と入力するだけで、追加されます。
Matt

84

上記の受け入れられた答えに触発されて、ドラッグアンドドロップを使用するか、[ 送る ]コンテキストメニュー使用して、2つのファイルをVisual Studioで瞬時に比較する非常に快適な方法を見つけました。それはあなたが一度行う必要がある少しの準備を必要とするだけであり、それからスイスのアーミーナイフのように役に立ちます。

Visual Studioには必要なものがすべて揃っています。これを機能させるために必要な構成手順はいくつかあります。

ドラッグ&ドロップを使用したファイル比較

準備:

1 .お気に入りのテキストエディタを使用して、新しいバッチファイルを作成します。次のように入力します。

@echo off
setlocal
set vspath=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE
start "Compare files" /B /MIN "%vspath%\devenv.exe" /diff %2 %1 First:'%2' Second:'%1'

バッチの%1%2パラメータを逆にしたことに気付くかもしれません。これは、ファイルエクスプローラーが2番目のファイルを最初のパラメーターとして渡し、次に1番目のファイルを2番目のパラメーターとして渡すことに気付いたためです。

2.このコードVS_FileCompare.cmdを使用するために保存し、vspath必要に応じて変更して、場所に一致するように変更します(現在使用devenv.exeしているVisual Studioのバージョンに応じて、脚注*を参照してください)

3. 「ファイル比較」という名前のショートカットを作成して配置しますそれでVS_FileCompare.cmdデスクトップ(以下のアニメーションで使用)、ファイルをドラッグアンドドロップしたり、バッチファイルをデスクトップに直接配置したりすることが常に可能です。それで全部です!

使用法:

  1. +でWindowsエクスプローラーを開きますWinE
  2. エクスプローラで比較する2つのファイルを選択します
  3. 以下のアニメーションに示すように、それらをドラッグアンドドロップします。 DragDropDemo

  4. 数秒後(Visual Studioの起動時間に応じて)、結果がVisual Studioに表示されます。 Visual Studioビュー

注: Visual Studioが既に開いている場合は問題ありません。この場合、Visual Studioの実行中のインスタンス内で新しいウィンドウが開きます。したがって、複数のファイルペアを比較できますが、一度に選択したファイルが2つだけであることを確認してください。


別の方法:SendToコンテキストメニュー

VS_FileCompare.cmd上記のセクションで説明したバッチファイルを使用する別の方法を次に示します。コンテキストメニューの[送信先]フォルダーを使用してファイルを比較できます。

準備:

  1. バッチファイルのショートカット「Compare2Files VS」を作成し、VS_FileCompare.cmdそれをSendToフォルダーにコピーします。+でWindowsエクスプローラーを開きますWinE
  2. ここで説明するように)ファイルエクスプローラーのアドレスバーに入力して、SendToフォルダーを開きます 。次に、準備したショートカットをこのフォルダに入れます。shell:sendto

使用法:

  1. +でWindowsエクスプローラーを開きますWinE
  2. エクスプローラで比較する2つのファイルを選択します
  3. バッチファイルのショートカットのVS_FileCompare.cmd名前が"Compare2Files VS"であるとすると、2つのファイルを選択して右クリックし、[ 送る ] -> [Compare2Files VS ]を選択して、次のように比較を呼び出すことができます。 に送る

  4. 数秒後(Visual Studioの起動時間に応じて)、結果がVisual Studioに表示されます。 Visual Studioビュー


MSDNの参考資料:
- 差分ウィンドウの使い方
- のVisual Studioの差分パラメータ


*) 脚注:のでvsPathへ(パスDEVENV.exe)が異なりは、Visual Studioのバージョンに応じて、私は)あなたが(Windowsの10でそれを見つけることができますどのように記述しています:

  1. 、Windowsのスタートメニュー Windowsアイコン小、探しVisual Studioのアイコンを Visual Studioアイコン小
  2. 右クリックして、コンテキストメニューを表示します。[ その他]> [ファイルの場所を開く]を選択します
    Windowsエクスプローラーが開き、Visual Studioショートカットが強調表示されます。
  3. Visual Studioを右クリックし、[ プロパティ]を選択します
  4. プロパティダイアログの[ ターゲット: ]にパスが表示されます VSProperties

5
これは本当に非常に精巧な回答であり、間違いなく投票する必要があります。私は、答えがスレッドでマークされている場合でも、すぐに使える答えを探し続けているグループの出身なので、絶対に頭を上げます。
divティワリ

1
@DivTiwari-ありがとうございます。
マット

編集:これはVS 2013のスクリプトです。@echo off setlocal set vspath = C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE start "Compare files" / B / MIN "%vspath%\ devenv.exe" / diff%2%1最初: '%2'秒: '%1'
フェルナンドアギラール

1
それは素晴らしく、魅力のように働きました。
どうも

1
いいね!これに賛成票を投じます。このソリューションの「ハッキー」な性質を気に入ってください。共有していただきありがとうございます。
レオグルディアン



24

CompareFilesと呼ばれるVisual Studio拡張機能もあり、ソリューションエクスプローラーのコンテキストメニューに「ファイルの比較」エントリを追加するだけです。組み込みのVisual Studio diffツールを呼び出します。

(私のような)誰かがVSCommandsのようなオールインワン拡張機能をインストールしたくない場合に備えて...


1
注意-この拡張機能はVS2012専用ですが、マニフェストファイルを編集してVS2013を簡単にサポートできます。詳細については、拡張機能の[Q&A]タブのコメントを参照してください (私はこの機能が欲しかったのですが、ライセンスがあるため、VSCommandsの無料版を職場で使用することはできません)
James S

Visual Studioの比較ツール、2013年に利用可能であるvisualstudiogallery.msdn.microsoft.com/...
同盟

23

VS2019->View->Other Windows->Command Window (Ctrl + Alt + A)

Tools.DiffFiles File1 File2

これは別の答えと同じです
niico

5
多分-個人的にはGUIを使用してファイルを選択したいのですが、どのタイプでも2つのパスを作成する必要があります。
つまり、

18

Visual Studio 2012、2013、2015では、Web Essentialsでも実行できます。ファイルを右クリックして、コンテキストメニューから[Web Essential] >> [選択したファイルを比較]を選択します。

編集:別の拡張機能として利用できるようになりました

ここに画像の説明を入力してください


選択したファイルを
比較したり

の新しいバージョンをインストールしました VS 2015が、Diff selected filesなぜオプションが表示されないのですか?
shaijut

@stomは、私が言及した拡張機能をインストールします。
Hamid Mosalla 2017年

16

VSがインストールされている場合は、

"%VS110COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"

またはVS 2013

"%VS120COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"

ソース:http : //roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/


感謝は私のために完全に働きました。c:\ temp> "%VS120COMNTOOLS%.. \ IDE \ vsdiffmerge.exe" 1256.txt 1256_PROD_Original.txt
Craig B

8

ではVisual Studioのコードを実行できます:

  • に行く Explorer
  • 比較する最初のファイルを右クリックします
  • 選択する Select for compare
  • 比較する2番目のファイルを右クリックします
  • 選択する Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'

これは、あなたが言及したようにVisual Studio Codeでうまく機能しますが、残念ながらVisual Studio Enterprise(またはProfessional)では機能しません。
Eptin


4

更新:VS 2019 File Differプラグインの場合、異なるプロジェクトのファイルを比較できる ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここからインストールできます。

ここに画像の説明を入力してください

旧: VS 2017の場合https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017をインストール

問題は、異なるプロジェクト内のファイルを比較できないことですが、同じプロジェクト内のファイルをコピーして比較できます...

ファイルの違い


1
残念ながら、これはソリューションなしで2つのファイルを比較しようとすると機能しません(たとえば、VS2017をフォルダーモードで開く場合:開く-フォルダー)
Yury Kozlov

2

私にもこの問題がありました。TFSはありませんが、この記事は役に立ちました

具体的には、ステップ1b。

Visual Studioコマンドプロンプトを開き、Common7 / IDEフォルダーに移動して、次のように入力します。

tf diff /configure

0

Akhil MittalによるFile Comparer VS Extension。仕事をこなす優れた軽量ツール。


0

2つのファイルを比較して1つのファイルにマージするにはVisual Studio(すべてのバージョン)がインストールされている場合に実行できる手順は次のとおりです。

手順1: Visual Studioコマンドプロンプトを開きます。Visual Studioコマンドプロンプトが見つからない場合は、Visual Studioツールを選択します

[スタート]-> [Visual Studioコマンドプロンプト]

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ステップ2:コマンドvsdiffmerge.exeを入力します

比較だけが必要な場合は、スイッチ/ mを無視してください。

構文1:
vsdiffmerge <file1> <file2> <file1> <outputfile> / t / m

構文2:
vsdiffmerge <basefilename> <CompareFilename> <basefilename> <OutputFilename> / t / m

例1:
vsdiffmerge test1.js test2.js test1.js output.js / t / m
例2:
vsdiffmerge.exe "C:\ Users \ livingston \ Downloads \ wa \ wa \ Files \ pre \ Test.js" "C :\ Users \ livingston \ Downloads \ wa \ wa \ Files \ Prod \ Test.js "" C:\ Users \ livingston \ Downloads \ wa \ wa \ Files \ pre \ Test.js "" C:\ Users \ livingston \ダウンロード\ wa \ wa \ Files \ output \ samp.js "/ t / m

ここに画像の説明を入力してください


ステップ3:ファイルをマージする

ここに画像の説明を入力してください その場所にファイル名が存在しない場合、比較機能開かないことに注意してください。

また、比較を行う前にファイルを美化することもできます。Visual StudioではCtrl + K +D。

オンラインで利用できる美容サイトがたくさんあります。


0

Visual Studioコードはこれに最適です。フォルダーを開き、両方のファイルを右クリックして比較します。


0

Visual Studioでは、DiffはCommand Window次のTools.DiffFilesコマンドを使用して呼び出すことができます

  1. Command WindowホットキーCtrl + W, Aまたはメニューで開くView -> Other Windows -> Command Window
  2. コマンドを入力してください Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"


-4

接続されたTFSで作業している場合は、(ソース管理エクスプローラーを介して)比較する必要があるファイルを右クリックすると、次のようなウィンドウが表示されます- ここに画像の説明を入力してください

「ソースパス:」でソースファイルのパスを変更すると、VS比較ツールで比較できます。

同様に、フォルダーのすべてのファイルを一度に比較するフォルダーも比較できます。


2
元の投稿を読んだ場合、彼は具体的に次のように述べています。「VSに組み込み機能があり、TFSがない2つのファイルを比較する方法はありますか?」あなたの答えは彼がTFSを持っていることを要求します。
CigarDoug

彼は答えようとしましたが、..しかし、彼の試みは間違っていました+1
Irf '27
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.