当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > 用vbs实现zip功能的脚本

VBScript
ActiveX漏洞通用Exploit vbs修正版
一个扩展时间段的dir命令的vbs脚本
Rcmd.vbs [Remote Cmd with wmi]远程脚本
Rcmd.vbs 1.01修正版 增加了下载功能
将VBS或ASP中的代码转成一句话形式
FileSystemObject 示例代码
灵活实用的VBS入门教程基础篇
vbs实用软件自造:Windows脚本应用实例
好玩的vbs特色代码
vbs实现的下拉框对应键入值
用vbs实现防止计算机使用 LMHosts 文件
vbs脚本大全,配有实例 DOS命令,批处理 脚本 代码
vbscript下调用 Dir 命令的方法
用vbscript实现从后到前阅读一个文本文件
用vbs实现zip功能的脚本
vbs搜索文件名或者得到目录列表
vbs shellcode转换escape加密
ADOX.Catalog中文帮助详细说明chm文档
vbs Windows系统改变或修改网卡的MAC地址的脚本与软件
IE浏览器增加“复制图像地址”的右键菜单的vbs代码

VBScript 中的 用vbs实现zip功能的脚本


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 106 ::
收藏到网摘: n/a

vbs实现压缩功能的代码 压缩:
Function fZip(sSourceFolder,sTargetZIPFile)
'This function will add all of the files in a source folder to a ZIP file
'using Windows' native folder ZIP capability.
Dim oShellApp, oFSO, iErr, sErrSource, sErrDescription
Set oShellApp = CreateObject("Shell.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")
'The source folder needs to have a \ on the End
If Right(sSourceFolder,1) <> "\" Then sSourceFolder = sSourceFolder & "\"
On Error Resume Next
'If a target ZIP exists already, delete it
If oFSO.FileExists(sTargetZIPFile) Then oFSO.DeleteFile sTargetZIPFile,True
iErr = Err.Number
sErrSource = Err.Source
sErrDescription = Err.Description
On Error GoTo 0
If iErr <> 0 Then
fZip = Array(iErr,sErrSource,sErrDescription)
Exit Function
End If
On Error Resume Next
'Write the fileheader for a blank zipfile.
oFSO.OpenTextFile(sTargetZIPFile, 2, True).Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0))
iErr = Err.Number
sErrSource = Err.Source
sErrDescription = Err.Description
On Error GoTo 0
If iErr <> 0 Then
fZip = Array(iErr,sErrSource,sErrDescription)
Exit Function
End If
On Error Resume Next
'Start copying files into the zip from the source folder.
oShellApp.NameSpace(sTargetZIPFile).CopyHere oShellApp.NameSpace(sSourceFolder).Items
iErr = Err.Number
sErrSource = Err.Source
sErrDescription = Err.Description
On Error GoTo 0
If iErr <> 0 Then
fZip = Array(iErr,sErrSource,sErrDescription)
Exit Function
End If
'Because the copying occurs in a separate process, the script will just continue. Run a DO...LOOP to prevent the function
'from exiting until the file is finished zipping.
Do Until oShellApp.NameSpace(sTargetZIPFile).Items.Count = oShellApp.NameSpace(sSourceFolder).Items.Count
WScript.Sleep 1500'如果不成功,增加一下秒数
Loop
fZip = Array(0,"","")
End Function
Call fZip ("C:\vbs","c:\vbs.zip")

解压缩:
Function fUnzip(sZipFile,sTargetFolder)
'Create the Shell.Application object
Dim oShellApp:Set oShellApp = CreateObject("Shell.Application")
'Create the File System object
Dim oFSO:Set oFSO = CreateObject("Scripting.FileSystemObject")
'Create the target folder if it isn't already there
If Not oFSO.FolderExists(sTargetFolder) Then oFSO.CreateFolder sTargetFolder
'Extract the files from the zip into the folder
oShellApp.NameSpace(sTargetFolder).CopyHere oShellApp.NameSpace(sZipFile).Items
'This is a seperate process, so the script would continue even if the unzipping is not done
'To prevent this, we run a DO...LOOP once a second checking to see if the number of files
'in the target folder equals the number of files in the zipfile. If so, we continue.
Do
WScript.Sleep 1000‘有时需要更改
Loop While oFSO.GetFolder(sTargetFolder).Files.Count < oShellApp.NameSpace(sZipFile).Items.Count
End Function