Board logo

标题: [系统相关] robocopy如何判断是否跳过了拷贝 [打印本页]

作者: 小白龙    时间: 前天 07:36     标题: robocopy如何判断是否跳过了拷贝

本帖最后由 小白龙 于 2024-9-27 07:39 编辑

我现在遇到一个问题,
robocopy有个很不错的功能, 就是拷贝的文件和拷贝到的文件: 如果是相同的, 就会跳过拷贝, 但是我怎样知道是否跳过了拷贝了呢?

因为我在拷贝之后, 有校验md5的代码, 如果要是知道上边跳过拷贝了, 那就不用检验md5了(只有没跳过拷贝,即完整拷贝时才校验), 这样就省了很多时间, 求路过大佬支招, 谢谢
作者: hnfeng    时间: 前天 09:05

1、BCompare 可以比较文件夹,但不知是不是你需要的

2、robocopy 日志记录选项中 有个
    /V :: 生成详细输出,同时显示跳过的文件。
   你可以试试
作者: 小白龙    时间: 前天 09:14

回复 2# hnfeng


    感谢支招

用比较的话, 感觉又多了步骤, 可能就慢了
用详细信息的话, 批处理处理起来感觉太麻烦了
作者: hnfeng    时间: 前天 10:39

回复 3# 小白龙


    其实是你不怎么相信 robocopy 吧
如果源和目标文件的时间戳和大小都相同,大概率文件相同的(我也不知道robocopy凭哪些信息来判断)
可以用BCompare 打开 MD5 全面比较一遍,如果没有发现MD5相同但是robocopy跳过的情况,之后的,就相信 robocopy 即可
本来复制加校验就很费时间。

或者你使用 Fastcopy,复制每个文件后自动校验
作者: 小白龙    时间: 前天 11:10

回复 4# hnfeng


    不是不相信robocopy, 是因为每个文件有个md5值进行比较, 所以也是想稳妥
作者: hnfeng    时间: 前天 12:36

本帖最后由 hnfeng 于 2024-9-27 13:23 编辑

robocopy /s /v /ndl /np /njh /njs [DIR1] [DIR2] | findstr /i "新文件"
然后用 For 获取到文件名,再校验文件

或者用该命令生成 LOG ,复制完再借用LOG校验




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2