(编辑:jimmy 日期: 2025/11/3 浏览:2)
压缩代码: 
复制代码 代码如下: 
Zip "D:\test.iso", "D:\test.zip" 
Zip "D:\test", "D:\test.zip" 
Msgbox "OK" 
Sub Zip(ByVal mySourceDir, ByVal myZipFile) 
Set fso = CreateObject("Scripting.FileSystemObject") 
If fso.GetExtensionName(myZipFile) <> "zip" Then 
Exit Sub 
ElseIf fso.FolderExists(mySourceDir) Then 
FType = "Folder" 
ElseIf fso.FileExists(mySourceDir) Then 
FType = "File" 
FileName = fso.GetFileName(mySourceDir) 
FolderPath = Left(mySourceDir, Len(mySourceDir) - Len(FileName)) 
Else 
Exit Sub 
End If 
Set f = fso.CreateTextFile(myZipFile, True) 
f.Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0)) 
f.Close 
Set objShell = CreateObject("Shell.Application") 
Select Case Ftype 
Case "Folder" 
Set objSource = objShell.NameSpace(mySourceDir) 
Set objFolderItem = objSource.Items() 
Case "File" 
Set objSource = objShell.NameSpace(FolderPath) 
Set objFolderItem = objSource.ParseName(FileName) 
End Select 
Set objTarget = objShell.NameSpace(myZipFile) 
intOptions = 256 
objTarget.CopyHere objFolderItem, intOptions 
Do 
WScript.Sleep 1000 
Loop Until objTarget.Items.Count > 0 
End Sub 
 
解压缩代码: 
复制代码 代码如下: 
UnZip "D:\test.iso", "D:\test.zip" 
Msgbox "OK" 
Sub CopyFolder(ByVal mySourceDir, ByVal myTargetDir) 
Set fso = CreateObject("Scripting.FileSystemObject") 
If NOT fso.FolderExists(mySourceDir) Then 
Exit Sub 
ElseIf NOT fso.FolderExists(myTargetDir) Then 
fso.CreateFolder(myTargetDir) 
End If 
Set objShell = CreateObject("Shell.Application") 
Set objSource = objShell.NameSpace(mySourceDir) 
Set objFolderItem = objSource.Items() 
Set objTarget = objShell.NameSpace(myTargetDir) 
intOptions = 256 
objTarget.CopyHere objFolderItem, intOptions 
End Sub 
用VBS解压ZIP文件,网上搜到的多数是调用WinRAR,一点技术含量也没有。Google一下“VBS 解压ZIP”,第二是搜搜问问“vbs实现解压缩zip文件”,满意答案是“所以想用vbs来解压这两种格式的文件,至少要有两种命令行解压工具,否则是绝对不可以的”。绝对不可以的,回答的人好自信啊,笑而不语~
原文:http://demon.tw/programming/vbs-zip-file.html 
http://demon.tw/programming/vbs-unzip-file.html