我想建立一个备份脚本使用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
- Windows 8 以上:
- 提供的成像命令是总是发行:
- ESD 只能采取系统分割
/Compress:Recovery
是唯一可用的压缩算法。- ESD 压缩比比 WIM 压缩比高出约 33%。
- ESD 压缩比比 WIM 压缩比高出约 33%。
- ESD/WIM 是智能压缩图像格式
- 当将新图像附加到图像时,仅将更改的文件添加到图像中
- 新附加的图像利用先前图像中已包含的未更改文件的相同副本。
- 这使得图像相对于其中包含的数据来说保持较小。
- 新附加的图像利用先前图像中已包含的未更改文件的相同副本。
- 当将新图像附加到图像时,仅将更改的文件添加到图像中
DISM 先决条件
- 简单的
- 风俗: 创建 WinPE/RE 映像Create a WinPE/RE image
- 安装: Windows ADK
- 选择: Windows PE&部署工具
- Windows ADK(8 和 10,7 的 AIK)特定于安装的 Windows 版本。
- 选择: Windows PE&部署工具
- 创造:
- 启动
- 安装: Windows ADK
答案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
,然后检查日志文件中是否存在故障,并手动处理这些问题。