Вы можете сделать это на месте с объектами Shell. Возможно, это будет так же медленно. Если только имя и дата Explorer могут получить это прямо из zip-каталога (в конце файла, поэтому весь файл все равно нужно прочитать).
Это копирует элементы в папку в другую папку. Почтовый файл представляет собой папку, в которой он будет копироваться и копироваться.
Для Zip
Set objShell = CreateObject("Shell.Application")
Set Ag=Wscript.Arguments
set WshShell = WScript.CreateObject("WScript.Shell")
Set SrcFldr=objShell.NameSpace(Ag(1))
Set DestFldr=objShell.NameSpace(Ag(0))
Set FldrItems=SrcFldr.Items
DestFldr.CopyHere FldrItems, &H214
Msgbox "Finished"
разархивировать (примечание SrcFolder и DestFolder перепутаны)
Set objShell = CreateObject("Shell.Application")
Set Ag=Wscript.Arguments
set WshShell = WScript.CreateObject("WScript.Shell")
Set DestFldr=objShell.NameSpace(Ag(1))
Set SrcFldr=objShell.NameSpace(Ag(0))
Set FldrItems=SrcFldr.Items
DestFldr.CopyHere FldrItems, &H214
Msgbox "Finished"
создать пустой почтовый индекс. (Я должен использовать двоичный поток ADODB, а не текстовый поток FSO, но это не имеет значения)
Set Ag=Wscript.Arguments
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(Ag(0), 8, vbtrue)
BlankZip = "PK" & Chr(5) & Chr(6)
For x = 0 to 17
BlankZip = BlankZip & Chr(0)
Next
ts.Write BlankZip
возможно дубликат [Как прочитать содержимое ZIP-файла с помощью VBScript, фактически извлечения файлов ?] (http://stackoverflow.com/questions/4724140/how-to-read-the-contents-of-a-zip-file-with-vbscript-without-actually-extractin) – Helen