使用命令行在计算机之间移动文件(Windows)

使用命令行在计算机之间移动文件(Windows)

我有一台运行 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

相关内容