我已将 OneDrive 设置为网络共享,而不是同步本地 OneDrive 文件夹。我尝试在 Windows 10 上的批处理脚本中使用 robocopy,该脚本将作为每日计划任务运行,以“镜像”网络共享上的一组本地文件夹。我尝试使用的命令语法如下(N:是映射到 OneDrive 的驱动器):
robocopy <local folder> N:<remote folder> /MIR /FFT /XO /COPY:DAT /DCOPY:T /R:3 /W:10 /NP /NDL
问题是网络共享上的文件都带有复制时的时间戳,而不是文件本地副本的时间戳(我以为 /COPY:DAT 会强制执行)。所有文件都在被复制,但下次我运行脚本时,似乎每个文件都被复制了,即使它没有更改,而不是 /XO 开关发挥作用只复制新的/更改的文件。
当目标是网络共享时,robocopy 是否无法保留原始时间戳,或者网络共享实际上是 OneDrive 的问题?
答案1
在这种情况下,您的问题可能是 OneDrive 及其所基于的技术。我过去曾尝试这样做,但无法让 OneDrive(或似乎是后端的 SharePoint)停止篡改文件。它不仅修改了时间戳,还修改了 Office 文档的内容。
使用 robocopy,您可能能够使用一组不同的参数来实现此目的。就其功能而言,这会更广泛一些,但它应该允许您复制所需的文件。
我自己还没有尝试过这些,但使用设置和重置存档位的“经典”备份解决方案/m
可能会有效。
/m 仅复制设置了存档属性的文件,并重置存档属性。
另一个选择可能是使用日期选择(混合),因为您可能知道何时运行该脚本。这容易出现更多错误,因为有些操作可能不会更改文件的日期。
/min:指定最小文件大小(排除小于 n 字节的文件)。
/maxage:指定文件的最大年龄(排除超过 n 天或日期的文件)。
/minage:指定最小文件年龄(排除超过 n 天或日期的文件)。
/maxlad:指定最长最后访问日期(不包括自 n 以来未使用的文件)。
/minlad:指定最小上次访问日期(不包括自 n 以来使用的文件)如果 n 小于 1900,则 n 指定天数。否则,n 指定 YYYYMMDD 格式的日期。
本质上,您必须依靠使用仅基于本地文件的某些选择。要删除远程站点上的文件,您仍然可以使用/purge
。