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

VBScript
vbs删除注册表项的代码
用vbs检查注册表项的访问权限的代码
vbs之使用Internet Explorer 屏蔽密码
vbscript 注册表脚本书写
vbs下通过日期查找文件夹的代码
vbs复制文件的脚本
vbs实现计算机重启
文件备份vbs脚本
vbs下用一个小方法实现批量添加域用户
用vbs实现本地添加用户的脚本
vbs AD日志开启脚本nableKerbLog的脚本
vbs实现压缩文件夹的脚本
用VBS修改远程桌面3389端口并添加到Windows防火墙的代码
用vbs实现自动检查代理是否可用,并自动设置IE代理的脚本
vbs实现的定时关机、重启的脚本和程序
vbs实现的定时提醒你休息的脚本
vbs自动填表单分析附源码
vbs实现的汉字转拼音的函数
初窥WMI_Vbs脚本编程简明教程补充读物
用vbs实现判断计算机是笔记本还是台式机的代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 118 ::
收藏到网摘: 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