我在Server 2008 R2 VM上有一个脚本,它调用shell将robocopy
一堆文件调用到本地目录中,几秒钟后,检查是否存在某个2.5 MB .msi。即使robocopy
成功完成并且可见检查显示文件准时到达,它仍然返回false。我使用脚本在我的本地Windows 7上重现了这个错误:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWshShell = CreateObject("WScript.Shell")
Dim file : file = "LargeFile.exe"
objWshShell.Run "xcopy ""..\" & file & """ .", 1, True
WScript.Echo "EXISTS: " & objFSO.FileExists(file)
LargeFile.exe
是一个大约7MB的可执行文件。我将它放在脚本上方的一个目录中,执行脚本,然后打印EXISTS: False
。我在使用此结果时多次运行该脚本,然后一些开关翻转,并开始一致地报告True
。
它仍然在我的VM上间歇性地发生。它可以正常工作几次,我会做几分钟的其他事情,当我回来时它会再次停止工作。
这里发生了什么?我需要使用shell进行复制,因为网络不稳定并导致objFSO.CopyFolder()
崩溃。