标题: 用VBS解压缩ZIP文件
作者: Demon
链接: https://demon.tw/programming/vbs-unzip-file.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
用VBS解压ZIP文件,网上搜到的多数是调用WinRAR,一点技术含量也没有。Google一下“VBS 解压ZIP”,第二是搜搜问问“vbs实现解压缩zip文件”,满意答案是“所以想用vbs来解压这两种格式的文件,至少要有两种命令行解压工具,否则是绝对不可以的”。绝对不可以的,回答的人好自信啊,笑而不语~
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
2012年1月3日更新(时隔一年多之后):很多朋友都提到没有UnZip函数,这的确是我当时疏忽贴错了代码,搞笑的是垃圾脚本之家把错误的代码也一并抄袭了过去,然后又有垃圾网站采集垃圾脚本之家,于是网上的代码全部都是错误的。
下面是正确的UnZip函数,不过那些垃圾站没有机会采集到了:
赞赏Sub UnZip(ByVal myZipFile, ByVal myTargetDir) Set fso = CreateObject("Scripting.FileSystemObject") If NOT fso.FileExists(myZipFile) Then Exit Sub ElseIf fso.GetExtensionName(myZipFile) <> "zip" Then Exit Sub ElseIf NOT fso.FolderExists(myTargetDir) Then fso.CreateFolder(myTargetDir) End If Set objShell = CreateObject("Shell.Application") Set objSource = objShell.NameSpace(myZipFile) Set objFolderItem = objSource.Items() Set objTarget = objShell.NameSpace(myTargetDir) intOptions = 256 objTarget.CopyHere objFolderItem, intOptions End Sub
微信赞赏支付宝赞赏
随机文章:
话说没看见UnZip函数
老兄,你unzip函数都贴出来啊,麻烦发到我email里 谢谢
还逆什么呀,上面那个就是解压的,晕,这代码在网上转来转去!稍改一下吧:
Sub UnZip(ByVal mySourceDir, ByVal myTargetDir)
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
呵呵,幸好,我找到了你这里的原始出处,果然网上都是抄的你原来那个错误的代码,让人真无语
要是有解压密码怎么办
哈哈,是啊,乱抄一气,新手都懵了。
不能实现解压缩ZIP文件到指定目录, 其中这句:Set objSource = objShell.NameSpace(myZipFile)参数应该路径,怎么是ZIP文件名了,我测试了,UnZip函数功能是拷贝文件到指定目录,并无解压缩zip文件.
[…] http://demon.tw/programming/vbs-unzip-file.html […]
[…] 代码来自于http://demon.tw/programming/vbs-unzip-file.html […]
[…] 代码来自于http://demon.tw/programming/vbs-unzip-file.html […]
我测试了一下,可以解压小文件,大的压缩文件(比如10M)无法解压,提示缺少对象:‘objSource’