web-dev-qa-db-ja.com

WindowsコマンドプロンプトでUNIXの「diff -r」を実行する方法

Windows m/cのcmdプロンプトで2つのディレクトリを比較するにはどうすればよいですか? UNIXのdiff -rに相当するものが欲しい。

26
Pradeep

Cygwin をインストールすると、diff -r Windowsの場合。

19
RichieHindle

Windowsの comp コマンドは、探しているものです。

ここに例:

ディレクトリC:\ Reportsの内容をバックアップディレクトリ\\ Sales\Backup\Aprilと比較するには、次のように入力します。

comp c:\reports \\sales\backup\april 
14
victor hugo

最も簡単な方法は、おそらくWindowsのdiffをダウンロードすることです: http://gnuwin32.sourceforge.net/packages/diffutils.htm
次のようなこともできます:

dir directory1 > dir1
dir directory2 > dir2
comp dir1 dir2

また、Windowsの一部のバージョンにはwindiffが付属していますが、これはGUIツールです

8
carlpett

Windowsにはfcコマンドがあります。 diffの方がはるかに優れていると思いますが、インストールに付属しているものだけを使用したい場合は、どうぞ。 :)

4
Adri C.S.

Gowをインストールし、Windowsコマンドプロンプトでdiffを実行できます。

3
Victor

Windowsに含まれるwindiff utilをNTバージョン以降で使用できます。 「windiff」を実行するだけで、グラフィックツールがポップアップします。

ファイル->ディレクトリの比較

http://msdn.Microsoft.com/en-us/library/aa266122(VS.60).aspx

この記事では、コマンドラインから使用する方法について説明します。このツールの大きな利点は、このツールがすでに含まれており、何もダウンロードしてインストールする必要がないことです。

2
Ivan Suhinin

ROBOCOPYによる部分的なソリューション

部分的な解決策(したがって、残念ながら私は「非解決策」ですが、最初は期待していましたが)。

どうやら ROBOCOPYツールは、ちょっとした貧しい人の再帰的な比較として機能するために(ab-)を使用できるようです ;不幸な制限がありますが、明らかにはファイルの内容を比較しませんサイズ、日付、オプションで属性を比較しているようです。これに対する魔法の呪文は次のとおりです。

ROBOCOPY path1 path2 /e /l /ns /njs /njh /ndl /fp /log:result.txt /it

ここで オプション意味 は次のようです:

  • /e-空のディレクトリを含む再帰。
  • /l-ログのみを出力し、ファイルは変更しない;
  • /ns /njs /njh-ファイルサイズ、ジョブの概要、ジョブヘッダーを印刷しません。
  • /ndl-「フォルダ名をログに記録しない」
    • 注:これにより、空のディレクトリが見つからない/不要な場合がスキップされると報告されています。これを使用しない場合、それらはログに記録されるはずですが、他の方法で何らかの方法で差分のないディレクトリを削除する必要があります。
  • /log:result.txt-結果を「result.txt」ファイルに書き込みます。これは省略でき、結果は標準出力に表示されます。

追加オプション:

警告:ファイルの内容を比較しません

上で述べたように、これは残念ながらファイルの内容を比較していないようです。最初に次のコマンドを実行してこれを確認しました。

mkdir d1\a\b d2\a\b & echo x > d1\a\b\f & echo y > d2\a\b\f

ほとんどの場合、これは同じタイムスタンプのファイルd1\a\b\fとd2\a\b\fを生成します。dir d1\a\b\f d2\a\b\fで確認できます。 d1とd2のrobocopy呼び出しにより、空の結果セットが生成されました。

0
akavel

コマンドプロンプトでデータを比較するには、次のコマンドを使用できます。

COMP/a/l D:\ Folder1\data.txt D:\ Folder2\data.txt

検索する特定の行数や大文字と小文字を区別しない検索などのさまざまなオプションがあり、コマンドプロンプトでフォルダーを比較することもできます。 コマンドプロンプトでファイルとフォルダを比較する の他のオプションを次に示します。

0
Hari

Windows 10では、Linux Bash Shellを有効にすることでdiffbashコマンドを実行できます

0
krpra