我正在寻找一个实用程序(内置或非内置),它可以让我基本上执行类似 robocopy 的操作,但使用二进制文件比较而不是日期比较。
本质上,我有一个 git hook,它会检查仓库的最新版本,然后运行 robocopy 将已更改的文件复制到特定位置。无论出于什么原因,它都认为所有文件都已更改,大概是因为签出过程触及了它们的日期戳。我需要一种使用二进制文件检查来执行此操作的方法。速度不是首要考虑因素,我只需要它准确并且不会每次都覆盖整个远程文件夹。
答案1
只需编写一个复制脚本并使用 FC 命令的输出作为输入条件。FC file1.tmp file2.tmp 如果结果是“未遇到差异”,则将条件设置为跳过,否则进行复制。
答案2
不管怎样,我最终使用了 BeyondCompare,这是一款我们恰好拥有许可证的付费产品。
BComp.com @"X:\Path\To\bc.cfg" /silent
bc.cfg 的位置
log verbose "X:\path\to\log\bclog.txt"
criteria crc
load "X:\source\path" "X:\dest\path"
sync update:left->right
要执行与 robocopy 的 /mir 相同的操作,最后一行也可以是:
sync mirror:left->right