用vbs实现zip功能的脚本

所属分类: 脚本专栏 / vbs 阅读数: 654
收藏 0 赞 0 分享
压缩: 
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 
更多精彩内容其他人还在看

VBS实现截图功能

本文给大家分享了下2种通过VBS实现截图功能的代码,第一个是纯VBS实现,第二种方法是通过把简短的第三方工具集合到VBS脚本来实现更加丰富的功能。
收藏 0 赞 0 分享

VBS中Run和Exec的区别

这篇文章主要介绍了VBS中Run和Exec的区别,需要的朋友可以参考下
收藏 0 赞 0 分享

VBS获取GZIP压缩的HTTP内容的实现代码

这篇文章主要介绍了VBS获取GZIP压缩的HTTP内容的实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

VC中实现文字竖排的简单方法(推荐)

下面小编就为大家带来一篇VC中实现文字竖排的简单方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

对一个vbs脚本病毒的病毒原理分析

这篇文章主要介绍了对一个vbs脚本病毒的病毒原理分析的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

vbs判断磁盘类型和检测硬盘剩余空间的实现代码

这篇文章主要介绍了vbs判断磁盘类型和检测硬盘剩余空间的实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

VBS调用WMI遍历搜索硬盘文件并计数的方法

这篇文章主要介绍了VBS调用WMI遍历搜索硬盘文件并计数的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

vbs 查找硬盘分区中指定扩展名文件的实现代码

vbs 用于查找硬盘所有分区中指定扩展名文件的代码,有需要的朋友可以参考下。挺实用的一段代码,用来深入学习vbs,确实不错
收藏 0 赞 0 分享

vbs Size 属性使用介绍(获取文件大小)

为大家介绍vbs属性之size属性,供大家学习参考。Size 属性 对于文件,返回指定文件的字节数;对于文件夹,返回该文件夹中所有文件和子文件夹的字节数
收藏 0 赞 0 分享

vbs获取当前路径的代码

有时候我们需要获取执行当前vbs的路径,那么就可以参考下面的代码,一般用来可以删除自身等操作
收藏 0 赞 0 分享
查看更多