创建备份整个驱动器的 roboCopy 脚本

创建备份整个驱动器的 roboCopy 脚本

我想建立一个备份脚本使用robocopy,但我还没有找到任何信息,为什么我不能复制在另一个程序中打开的文件备份C:F:

我已经尝试了下面的方法,但是它卡在另一个程序打开的一个文件上:

RoboCopy "C:/" "F:/" /E

我应该使用什么属性来跳过目录%WinDir%Windows.old,以及仅复制已更改的文件?

答案1

RoboCopy 在备份驱动器时效率极低,在我看来在任何用例中都不推荐使用。


命令

  • 对于 Windows 8 以上版本,DISM将用于捕获图像(维姆)的驱动器:

    DISM /Capture-Image /ImageFile:"Z:\Base.wim" /CaptureDir:"C:" /Name:"Windows Backup" /Description:"Base Image 2017.07.14 @ 20:30" /Compress:Max /CheckIntegrity /Verify /NoRpFix /ScratchDir:"Z:\"
    
    • /ScratchDir是必需的,否则捕获可能会失败,因为 WinPE/WinRE 默认只为其预留了 32MB 的临时 [临时] 空间。

  • 在 Windows 7 以下版本中,ImageX将代替 DISM。

    ImageX /Capture "C:" "Z:\Base.esd" "Windows Backup" "Base Image 2017.07.14 @ 20:30" /Compress:Recovery /Check /Verify /NoRpFix /ScratchDir:"Z:\"
    



笔记:

  • 它是不可能的ESD/WIM 映像损坏
    • 提供的成像命令是总是发行:
      • Windows 8 以上: /CheckIntegrity&/Verify
      • Windows 7 以下版本: /Check&/Verify

  • ESD 只能采取系统分割
    • /Compress:Recovery是唯一可用的压缩算法。
      • ESD 压缩比比 WIM 压缩比高出约 33%。

  • ESD/WIM 是智能压缩图像格式
    • 当将新图像附加到图像时,仅将更改的文件添加到图像中
      • 新附加的图像利用先前图像中已包含的未更改文件的相同副本。
        • 这使得图像相对于其中包含的数据来说保持较小。



DISM 先决条件

答案2

Robocopy/XD有排除目录列表的选项:

/XD "C:\Windows" "C:\Windows.old"

您可以通过以下方式获取命令列表robocopy,并在桌面上创建文本文件:

Robocopy /? > "%USERPROFILE%\desktop\robocopy_commands.txt"
  • 如果您想要一个两个副本相同的当前备份,请使用/MIR“镜像”版本,这将删除备份副本(目标)上不再存在于原始副本(源)上的文件;是和/MIR的简写组合。/PURGE/E
  • 如果您使用该/L选项,它将列出将要发生的事情,但实际上不会执行移动或复制,这对于在实际花时间复制内容之前测试您的脚本很有用。
  • Robocopy,至少在使用时/MIR,是可重新启动的并且不会重新复制未改变的内容。

为了避免由于打开或访问文件的问题而导致速度大幅下降,我通常将重试次数设置为较小的数字,并将重试等待时间设置为较小的间隔,例如/R:2 /W:2,然后检查日志文件中是否存在故障,并手动处理这些问题。

相关内容