
2 つのファイルがあるとしc:\f1\data.txt
ますc:\f2\data.txt
。
コマンドを発行すると
copy c:\f2\data.txt c:\f1\data\
上書きの可能性があるという警告が表示されます。data.txt
から にドラッグアンドc:\f2\
ドロップしようとすると、ダイアログボックスで同じ警告が表示されますc:\f1
。この動作は、ファイルの名前が同じ ( ) であるために発生しますdata.txt
。この動作には満足していますが、ファイルにも拡張したいと思います。名前は違うが内容は同じ。
2つのファイルがありc:\f1\foo.txt
、それぞれに1行と1行が含まれているc:\f2\bar.txt
とします。つまり、同じ内容のファイルと、コマンドfoo.txt
Hello World!
bar.txt
Hello World!
foo.txt
bar.txt
copy c:\f2\bar.txt c:\f1\
成功するだろうが、失敗してほしい。
この動作を 1 つのフォルダーのみで実行できればよいのですが、この目的を達成できるソフトウェアはありますか?
答え1
これを実行するプログラムは思い当たりません。
コピー前に比較を行い、同一の場合に警告するスクリプトまたはアプリケーションを簡単に作成できます。 しかし...常に注意点があります。どのように比較するのでしょうか?テキストファイルを扱っているので、データが現れる同じであるように思われますが、実際は同じではありません。次の例を見てみましょう。
これはテストです。
そして
これはテストです。
これらの行はまったく同じに見えます。しかし、コンピューターにとっては異なります。マウスで左クリックして押したまま、最初の例を強調表示します。次に 2 行目を強調表示します。違いがわかりますか? 2 行目のピリオドの後にスペースがあります。これらの文字列は同じ情報を伝えますが、同一ではありません。1 文字 (1 バイト) の違いでも、コピーが可能になります。それで問題ない場合、アプリケーションまたはスクリプトは非常に簡単です。2 つのファイルのハッシュ値を取得して、その値を比較することをお勧めします。値が同じ場合は、警告を発してコピーを拒否します。