![使用命令行在计算机之间移动文件(Windows)](https://linux22.com/image/1316588/%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%9C%A8%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B9%8B%E9%97%B4%E7%A7%BB%E5%8A%A8%E6%96%87%E4%BB%B6%EF%BC%88Windows%EF%BC%89.png)
我有一台运行 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