我可以访问一个网络驱动器,每天都会在该驱动器上创建新闻文件夹。该驱动器名为 G:
我想备份 G:\ 中的所有文件夹到 D:\WebUpload
由于文件太多,我只想复制最新的文件。最新的文件是指尚未从 G: 备份到 D: 的文件。
我创建了这个脚本
robocopy G:\ D:\WebUpload\ /E /XO /R:3 /W:5 /XA:S /XF *.tmp *.bak /TEE /XD $RECYCLE.BIN "System Volume Information"
但是这个脚本每次都会复制整个内容。
编辑
我编辑了脚本以添加/FFT
robocopy G:\ D:\WebUpload\ /E /FFT /XO /R:3 /W:5 /XA:S /TEE /XD $RECYCLE.BIN "System Volume Information"
REM Source to Dest
REM /E Subfolder
REM /XO Exclude old files
REM /R Retry x times
REM /W sec between each retry
REM /TEE Display in the command prompt
REM /XD Exclude [][]
您可以看到名为 20150304103_8 的文件夹存在于 G:\ 和 D:\WebUpload 位置。
但是脚本会分析此文件夹中的每个文件。它需要 1 秒/文件,而我的几个文件夹中有 1000 多个文件……所以它太长了
答案1
最有可能的是,您需要/FFT
放松时间戳的比较。
编辑- 每个文件系统都以一定的精度存储时间戳。NTFS 的创建和修改时间戳的精度为 1/10 微秒。FAT 的精度分别为 10 毫秒和 2 秒 [1]。因此,如果您从 NTFS 复制到 FAT,则时间戳会被四舍五入,并且在下次运行时,当比较 src 和 dst 时它们将不匹配,从而导致文件被重新复制。/FFT
它所做的只是强制 robocopy 在比较时间戳时使用 FAT 精度,使其更加松散。
[1]https://msdn.microsoft.com/en-us/library/windows/desktop/ms724290%28v=vs.85%29.aspx