web-dev-qa-db-ja.com

Windowsのdiffコマンドに相当するものは何ですか?

これに似た投稿があることを私は知っています: ここ
前述のようにcompコマンドを使用しようとしましたが、2つのファイルがあり、1つが "abcd"のようなデータを持ち、もう1つがデータ "abcde"を持つと、ファイルのサイズが異なります。正確にどこが違うのか知りたいのですが。 Unixでは、単純なdiffがどの行と列を教えてくれます。Windowsのcompコマンドは、 "abd"や "abc"のようなものがあれば機能します。他にはありません。私がこれに使えるものはありますか?

252
wittythotha

CMDシェルまたはバッチファイルでこれを実行します。

FC file1 file2

FCはバイナリファイルを比較するのにも使えます。

FC /B file1 file2
407
Andriy M

そうですね、Windowsでは私はdiffや他のたくさんのGNUツールをうまく動かしています。あなたは cygwin でそれをすることができますが、私は個人的には GnuWin32 を好んでいます。なぜならそれはずっと軽いインストール経験だからです。

ですから、私の答えは、Windowsでのdiffと同等のものは、diff自体に他ならないということです。

29
David Heffernan

Winmergeには コマンドラインユーティリティ がありますので、ぜひチェックしてください。

また、必要に応じてそのグラフィック部分も使用できます。

23
Robert Greiner

もう一つの方法は here からgitをダウンロードしてインストールすることです。次に、Git\bin\へのパスをPATH変数に追加します。これはdiffだけでなく、あなたがwindowsコマンドラインから使用できる他の多くのlinuxコマンドもあなたに与えるでしょう。

PATH変数を設定するには、コンピュータを右クリックしてプロパティを選択します。その後、画面左側のAdvanced System Settingsをクリックします。ポップアップで、[環境変数]をクリックしてから、ユーザー変数のPATH変数をGit\bin\で追加または更新します。

Git diffのドキュメント

14
Tim Hutchison

私の場合は変更された行だけが欲しいので、FCは役に立ちませんでした。そして、FCはファイル名、同一行、二国間比較などの追加データを提供します。

    >fc data.txt data.txt.bak   
    ***** DATA.TXT
    ####09
    ####09
    ####09
    ***** DATA.TXT.BAK
    ####09
    ####08
    ####09

しかし私の場合は、変更された行だけを他のヘッダーやデータなしで別のファイルにエクスポートしたいと考えました。

そこで、ファイルを比較するために "findstr" を使用しました。

findstr /V /G:data.txt.bak data.txt >DiffResult.txt

ここで、

data.txt.bakは古いファイルの名前です

data.txtは新しいファイルの名前です

DiffResult.txtには、変更されたデータ、つまり1行だけが含まれます。#### 09

12

fc。 fcは、Cygwinの差分よりも大きいファイル(> 4 GB)の処理に優れています。

9
nerdfever.com

Powershell(これはWindowsの一部です)もあります。それは速くはありませんが、それは柔軟です、これは基本的なコマンドです。あなたがより良いフォーマットを必要とするならば、人々はそれのために様々なコマンドレットとスクリプトを書きました。

PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)

Windowsの一部ではありませんが、もしあなたがVisual Studioの開発者であれば、WinDiff(グラフィカル)が付属しています。

しかし私の個人的なお気に入りはBeyondCompareで、30ドルです。

9
Paul Williams

DiffUtils はおそらくあなたの最善の策です。これはWindowsのdiffと同等のものです。

私の知る限りでは、組み込みの同等物はありません。

4
mattkelly

私はdiffコマンドがないのに便利であると思われる、ウィンドウズ用の軽量グラフィカルソフトウェアを見つけました。それは私のすべての問題を解決することができます。

WinDiff http://www.grigsoft.com/download-windiff.htm

2
Ahmad

COMPでエラーが発生するのは、比較対象のファイルが同じサイズであるとユーティリティが判断するためです。これを克服するために、比較する行数を指定できる'/n'オプションを使用できます。 (コマンドラインで'comp /?'を入力してcompでサポートされているオプションを参照してください。コマンドは次のようになります。

C:\>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /c 

COMPを使い続けたいのであれば、これで問題は解決するはずです。しかし、これは本当に大きなファイルでは問題になります。

compはオプションですが、私はそれが原始的でFCがより良いオプションであると感じます。頻繁に使用する必要がある場合は、おそらくFORFILESFCを併用して本当に優れたファイル比較ユーティリティを作成できます。

FCはこのようにrefに使用されます。

C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"

'fc /?'で見ることができるたくさんの利用可能なオプションがあります

2
proximace

次のツールが本当にあなたが必要としているものであるかどうか私は知りません。しかし、私は特定のファイルのために、何らかのオンラインツールを使うのが好きです。これにより、運用システムに関係なく使用できます。これが一例です。diffchecker.com

しかし、私のニーズにとっては、私は自分のプロジェクトのファイルの変更やログを追跡するのに最適なツールがGITだと思います。あなたがチームで仕事をしているなら、あなたは自分のサーバーでオンラインでレポを持つことができ、あるいはBitbucketやGithubでそれを使うことができます。

誰かに役立つことを願っています。

0
Pedro Acácio

あなたのマシンにgitがインストールされていれば、gitターミナルを開いて、通常通りLinuxのdiffコマンドを使用することができます。

0
falsePockets

Diffコマンドと同等のウィンドウは、fc(File Comapre)コマンドです。

基本的な手順は次のとおりです。
1。 2つのファイルを1つのフォルダに保存します(例:file1.htmlとfile2.html)。
2。起動コマンドプロンプト
3。 fc file1Location file2Locationと入力します。

同じ上に詳細なチュートリアルを見つけました:

http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-Prompt/

0
Vishal Kotak