尝试学习 Robocopy 的基本备份计划,并在 bat 文件中尝试了这个:
@echo off
echo "Hello World!"
robocopy C:\Testfolder Z:\Testfolder
pause
其中 Z:是网络驱动器(连接到路由器 USB 端口的 USB 外部驱动器)
C:\Testfolder 中只有两个文件 - 02.jpg 和 02-03.jpg。
我第一次运行它时,它在 Z: 上创建了 Testfolder 并将两个图像复制了过去。
我很好奇会发生什么,于是我再次运行它 - 这一次,屏幕上的消息显示它复制了 02.jpg,但跳过了 02-03.jpg。再次运行它时,情况相同。
为什么会这样?
答案1
默认情况下,robocopy 仅复制它认为自上次运行以来已更改的文件。您可以通过查看复制末尾的状态来确认这一点。它应该显示“跳过的文件数”为 1。您可能需要包含该/v
选项以获取更详细的信息。
由于您正在复制到连接到路由器的网络驱动器,因此很可能存在文件时间错误,这会导致 robocopy 在其中一个目标文件上看到不同的日期和时间。文件属性问题在基于 Linux 的 samba 共享中很常见,例如路由器最有可能使用的共享。这可以解释为什么如果文件没有更改,它会不断重新复制它。您可以尝试该/timfix
参数,看看它是否会更正文件上的时间并停止重新复制未更改的文件。
如果希望robocopy复制相同且未改变的文件,请添加该/is
选项。
更多信息请点击这里:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy