假设我有两个文件c:\f1\data.txt
和c:\f2\data.txt
。
如果我发出命令
copy c:\f2\data.txt c:\f1\data\
我将收到有关潜在覆盖的警告。如果我尝试以图形方式将其拖放到 中,我将收到相同的警告(对话框)data.txt
。c:\f2\
此c:\f1
行为是由于文件具有相同的名称(data.txt
)。我对这种行为感到满意,但我希望将其扩展到文件名称不同,内容相同。
假设我有两个文件c:\f1\foo.txt
,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 个字节)的差异,也会允许复制。如果您对此没有异议,那么应用程序或脚本就非常简单了。我建议只获取两个文件的哈希值并比较该值。如果值相同,则发出警告并拒绝复制。