我对robocopy的工作方式感到困惑
我在网络驱动器上有一个文件,例如 \ myserver \ shared \ dir1 ,这是150 MB。
我有一个powershell脚本,每分钟检查 \ myserver \ shared \ dir2 (dir2,而不是dir1)。如果文件存在于那里,它将把它复制到c:\ mydir \ files
下的同一本地计算机
因此,其他计算机上的用户将从\ myserver \ shared \ dir1文件夹中复制该文件,并将其粘贴到\ myserver \ shared \ dir2文件夹中。
用户将获得一个小对话框/信息窗口,告诉他需要4分钟才能完成复制。 4分钟的原因是用户在较慢的网络上并通过VPN,因此复制过程对他来说较慢
最后通过任务调度程序,调用powershell,它将在\ myserver \ shared \ dir2下看到一个文件,并使用robocopy将其复制到c:\ mydir \ files下的本地计算机。由于网络区域和局部区域,此复制过程非常快,因此需要30秒
虽然启动副本的用户仍然需要超过2分钟才能完成复制,但是robocopy已将文件复制到c:\ mydir \ files,大小为150 MB。
怎么可能?如果启动副本的用户仍然有超过2分钟的时间,robocopy如何复制150 MB文件?
答案 0 :(得分:1)
我的理论。
如果将文件复制到Fileshare,操作系统将在复制时使用正确的扩展名预分配整个文件。
考虑到这一点,使用Powershell(可能使用test-path cmdlet)测试路径将返回True,即使整个文件尚未复制到文件共享。
然后,Robocopy将开始将未完成的文件从文件共享复制到本地计算机。