用VBS解压缩ZIP文件

标签: , ,

用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
赞赏

微信赞赏支付宝赞赏

随机文章:

  1. MySQL中CHAR和VARCHAR的区别
  2. 在Windows下源码编译PHP
  3. 在WordPress中使用jQuery库
  4. 用JavaScript读写二进制文件
  5. BinScope Binary Analyzer

14 条评论 发表在“用VBS解压缩ZIP文件”上

  1. ewakiz说道:

    发现大坑:一定要用【绝对路径】来调用函数,不然会报错!


    Unzip “1.zip” “1” ×
    Unzip “C:\a\b\1.zip” “C:\a\b\1\” √

  2. wcd说道:

    那怎么解压带密码的压缩文件呢??

  3. M说道:

    参数顺序错的
    UnZip “D:\test.iso”, “D:\test.zip”

留下回复