复制文件:如果文件相同,Windows 是否会写入磁盘?

Dof*_*hgo 30 windows hard-drive file-transfer copy

我有一个目录,里面有很多 PDF 格式的书籍(大小约为 2GB)。

在阅读时,我经常在文件中留下笔记和注释。有时我会在外部硬盘驱动器上进行备份。由于我不记得自上次备份以来修改了哪些文件,我只是复制并覆盖整个内容。

Windows 是否在覆盖之前检查同名文件是否相同(按内容)?如果没有,我将如何做到这一点?

Mr *_*net 63

机器人复制。

如果您使用Windows 资源管理器复制,Windows无法区分相同和修改过的文件

如果您使用Robocopy 进行复制,Windows可以区分相同文件和修改过的文件,Robocopy是 Windows(Vista、7、8.1 和 10)中包含的文件复制实用程序。

无需使用第三方工具。

您可以将此脚本保存为批处理文件,并在要执行备份时重新运行它:

robocopy /e c:\PDFs p:\PDFs

  • 每当对 PDF 文件进行注释并保存更改时,其上次修改时间和大小属性都会在源文件夹中更改,从而在下次调用 Robocopy 时触发目标文件夹中相应文件的覆盖。
  • Robocopy 比较源和目标中存在的所有文件的大小和上次修改属性。如果任一属性不同,则目标文件将被覆盖。注意:这些值只需要不同,不一定更新或更大;即使源文件具有较旧的Last Modified 或更小的Size 属性,源文件仍将覆盖目标文件。
  • 如果您的所有 PDF 文件都位于脚本中引用的文件夹的根目录中,则/e(或/s) 开关不是必需的,但如果您想包含子文件夹,则使用/s. 如果要包含子文件夹和空子文件夹,请使用/e.
  • 我会在字母表中进一步为备份驱动器分配一个字母,因此不会有另一个驱动器被无意中分配脚本中使用的驱动器号的风险,从而导致备份在未来的某个时刻失败。我在这里使用 P 来制作 PDF。

这个简单的脚本就是你所需要的。

  • 备份时“跳过”失败的副本真的明智吗? (9认同)
  • 旁注:Rococopy 不检查内容,它只检查元数据。但是,是的,在这种情况下,我认为 robocopy 就足够了。 (7认同)
  • @Jacob Raihle 好问题。`retry` 和 `wait` 参数的默认值分别为 100 万次尝试和 30 秒。您始终可以对这两个文件使用较小的值,但锁定的文件通常需要用户干预才能解锁,并且在短期内重新尝试通常会失败。所以这是个人偏好,但我喜欢让 RC 浏览所有文件,而不会在一个文件上挂断几分钟。如果文件确实失败,无论如何都会在作业摘要报告中报告。一般而言,我发现明天的备份将获取今天锁定的任何文件。 (4认同)

xyp*_*pha 6

Windows 不会这样做。但是,它会提示您覆盖同名文件,如果您愿意,可以手动选择。

要获得更简单的解决方案,请使用FreeFilesSync比较文件夹并仅覆盖更改/更新的文件(镜像选项并File time and size比较设置中选择)。