虽然Folder.CopyHere
方法不返回值,并且不会向调用程序发出任何通知来指示复制已完成,您可以等待下一个代码片段,我希望您可以在脚本中看到正确的(重新)放置:
On Error GoTo 0
zipApp.NameSpace(zip_target).Copyhere objFile _
, 4 +8 +16 +256 +512 +1024
Wscript.Sleep( 100)
On Error GoTo 0
注意:无需等待Do..Loop
, this Wscript.Sleep( 100)
足以压缩小文件或在大文件的情况下启动进度对话框 - 并且您的脚本将等待它......
注意:无'On Error Resume Next
。避免调用On Error Resume Next
如果你不处理错误...
使用的标志如下。
Const FOF_SILENT = &h0004 'ineffective?
Const FOF_RENAMEONCOLLISION = &h0008 'ineffective?
Const FOF_NOCONFIRMATION = &h0010 '
Const FOF_SIMPLEPROGRESS = &h0100 'ineffective?
Const FOF_NOCONFIRMMKDIR = &h0200 '
Const FOF_NOERRORUI = &h0400 '
不幸的是,在某些情况下,例如压缩(.zip
) 文件,某些选项标志可能会被设计忽略(原文如此!)由 MSDN 提供 http://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v=vs.85).aspx!
If FOF_SILENT
标记无效,然后用户可以Cancel压缩过程...
If FOF_RENAMEONCOLLISION
标志无效,则不会压缩较新的同名文件,现有的 zip 文件保留以前的版本,无需注意;只有现有文件夹才会出现额外的错误消息...
这些也可以解决,但这是另一个问题的主题......