时间:2021-05-22
压缩:
FunctionfZip(sSourceFolder,sTargetZIPFile)
'ThisfunctionwilladdallofthefilesinasourcefoldertoaZIPfile
'usingWindows'nativefolderZIPcapability.
DimoShellApp,oFSO,iErr,sErrSource,sErrDescription
SetoShellApp=CreateObject("Shell.Application")
SetoFSO=CreateObject("Scripting.FileSystemObject")
'Thesourcefolderneedstohavea\ontheEnd
IfRight(sSourceFolder,1)<>"\"ThensSourceFolder=sSourceFolder&"\"
OnErrorResumeNext
'IfatargetZIPexistsalready,deleteit
IfoFSO.FileExists(sTargetZIPFile)ThenoFSO.DeleteFilesTargetZIPFile,True
iErr=Err.Number
sErrSource=Err.Source
sErrDescription=Err.Description
OnErrorGoTo0
IfiErr<>0Then
fZip=Array(iErr,sErrSource,sErrDescription)
ExitFunction
EndIf
OnErrorResumeNext
'Writethefileheaderforablankzipfile.
oFSO.OpenTextFile(sTargetZIPFile,2,True).Write"PK"&Chr(5)&Chr(6)&String(18,Chr(0))
iErr=Err.Number
sErrSource=Err.Source
sErrDescription=Err.Description
OnErrorGoTo0
IfiErr<>0Then
fZip=Array(iErr,sErrSource,sErrDescription)
ExitFunction
EndIf
OnErrorResumeNext
'Startcopyingfilesintothezipfromthesourcefolder.
oShellApp.NameSpace(sTargetZIPFile).CopyHereoShellApp.NameSpace(sSourceFolder).Items
iErr=Err.Number
sErrSource=Err.Source
sErrDescription=Err.Description
OnErrorGoTo0
IfiErr<>0Then
fZip=Array(iErr,sErrSource,sErrDescription)
ExitFunction
EndIf
'Becausethecopyingoccursinaseparateprocess,thescriptwilljustcontinue.RunaDO...LOOPtopreventthefunction
'fromexitinguntilthefileisfinishedzipping.
DoUntiloShellApp.NameSpace(sTargetZIPFile).Items.Count=oShellApp.NameSpace(sSourceFolder).Items.Count
WScript.Sleep1500'如果不成功,增加一下秒数
Loop
fZip=Array(0,"","")
EndFunction
CallfZip("C:\vbs","c:\vbs.zip")
解压缩:
FunctionfUnzip(sZipFile,sTargetFolder)
'CreatetheShell.Applicationobject
DimoShellApp:SetoShellApp=CreateObject("Shell.Application")
'CreatetheFileSystemobject
DimoFSO:SetoFSO=CreateObject("Scripting.FileSystemObject")
'Createthetargetfolderifitisn'talreadythere
IfNotoFSO.FolderExists(sTargetFolder)ThenoFSO.CreateFoldersTargetFolder
'Extractthefilesfromthezipintothefolder
oShellApp.NameSpace(sTargetFolder).CopyHereoShellApp.NameSpace(sZipFile).Items
'Thisisaseperateprocess,sothescriptwouldcontinueeveniftheunzippingisnotdone
'Topreventthis,werunaDO...LOOPonceasecondcheckingtoseeifthenumberoffiles
'inthetargetfolderequalsthenumberoffilesinthezipfile.Ifso,wecontinue.
Do
WScript.Sleep1000‘有时需要更改
LoopWhileoFSO.GetFolder(sTargetFolder).Files.Count<oShellApp.NameSpace(sZipFile).Items.Count
EndFunction
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
需要实现一个复制文件夹的功能,网上找到相关代码,并做了改进,vbs脚本如下复制代码代码如下:Dimfso,CopyCountSetfso=CreateObjec
VBS应用--VBS脚本病毒的大量流行使我们对VBS的功能有了一个全新的认识,现在大家对它也开始重视起来。VBS代码在本地是通过WindowsScriptHos
复制代码代码如下:'执行方法:直接双击vbs文件或者通过cmd.exe下cscript.exe"指定脚本的路径"'利用Vbs脚本实现显示系统服务里表'Creat
最近在项目中使用VBS来实现图片的批量删除和批量导入功能,但不知道为什么,只要在我机器上一运行VBS文件就提示“没有在该机执行windows脚本宿主的权限。请与
Install.vbs发布者MicrosoftCorporation脚本专家此脚本由scenario1.vbs在一台网络主机上启动。Install.vbs可以在