我有一台运行 XP 的虚拟机,文件会在随机时刻上传。我需要一个适合命令行的脚本或实用程序,每隔 X 分钟运行一次(例如)移动将所有上传的文件都上传到 Win7 机器上的共享目录。
现在,命令行move
命令不能跨驱动器运行,更不能跨共享运行。(并且它给出了超级有用的消息Access denied.
)
我可以做一个
copy src desr_share
rm src
...但这里有一个棘手的部分:
当复制命令运行时,可能会同时上传一个文件。 可能copy
只上传文件的一部分,或者完全跳过它并继续,但稍后,当 启动时rm
,文件可能已完全上传,并且rm
会将其删除,而没有将其正确复制到目的地。
因此,我需要一些具有move
语义的东西(复制文件并仅在成功时删除它),但这可以在机器之间工作。
有什么建议么?
附言:我不介意文件只被部分移动,只要它没有被删除。我将强制覆盖任何目标文件,下次运行时,文件将再次完整上传。
答案1
研究一下 Robocopy,它是 Win7 的标准配置,并且在 xp 的微软开发工具包中可用。
使用robocopy /?
(或robocopy /? > drive:\path\robocopy_options.txt
)作为选项。
Windows 7的:
http://technet.microsoft.com/en-us/library/cc733145%28v=ws.10%29.aspx
Windows XP:
http://www.microsoft.com/en-us/download/details.aspx?id=17657#Requirements