是否有一个命令行程序可以复制一个文件夹中存在但不存在于另一个文件夹中的文件同时考虑到:
- 目标文件夹中的文件可能已重命名,我不想有重复文件
- 文件可随时添加到源文件夹,并具有随机创建、修改和访问的时间戳
我尝试过使用 robocopy,但有两个问题:
robocopy /mir
将复制文件,但如果目标文件夹中的文件已被重命名(点#1)则下次运行时将再次复制原始文件名。robocopy /maxage:1
将在最后一天复制文件,但由于添加的文件具有随机时间戳(点#2),因此许多新添加的文件将不会被复制,因为它们比该时间戳更旧。
还有别的东西可以做我想做的事吗?
答案1
您已指定此条件:
目标文件夹中的文件可能已重命名,我不想有重复文件
此条件实际上排除了我所知道的 Windows 和 Linux 上的所有候选者。它从等式中消除了文件名,要求复制应用程序仅根据文件的大小和内容来比较文件。(您的第二个条件也将时间戳从等式中剔除。)
你应该做什么就是卷起袖子开始编写一个 PowerShell 脚本,从所有文件(源和目标文件)创建 SHA-1 哈希值,比较源和目标文件中的哈希值,最后传输具有唯一哈希值的文件。