如何确定VBScript中复制何时完成?

时间:2020-03-06 14:53:18  来源:igfitidea点击:

有人知道在VBScript中确定文件复制何时完成的方法吗?我正在使用以下内容进行复制:

set sa = CreateObject("Shell.Application")  
set zip = sa.NameSpace(saveFile)  
set Fol = sa.NameSpace(folderToZip)  
zip.copyHere (Fol.items)

解决方案

我们可以在FileSystemObject上使用Copy方法来获得更好的运气。我已经使用它进行复制了,这是一个阻塞的呼叫。

Do Until zip.Items.Count = Fol.Items.Count
    WScript.Sleep 300
Loop

循环完成后,副本就完成了。

但是,如果我们只想复制而不是zip,则FSO或者WMI更好。

如果要压缩并希望将它们存储在文件中,则必须自己创建zip文件,并首先使用正确的标题。否则,我们将只获得压缩文件/文件夹IIRC。像这样的东西:

Set FSO = CreateObject( "Scripting.FileSystemObject" )
Set File = FSO.OpenTextFile( saveFile, 2, True )
File.Write "PK" & Chr(5) & Chr(6) & String( 18, Chr(0) )
File.Close
Set File = Nothing
Set FSO = Nothing

OpenTextFile中的2为ForWriting。