用VBS压缩ZIP文件

标签: , ,

有解压缩当然也有压缩,代码不是我写的,仍然是昨天给我程序那个高手写的。

Zip "D:\test.iso", "D:\test.zip"
Zip "D:\test", "D:\test.zip"
Msgbox "OK"

Sub Zip(ByVal mySourceDir, ByVal myZipFile)
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.GetExtensionName(myZipFile) <> "zip" Then
        Exit Sub
    ElseIf fso.FolderExists(mySourceDir) Then
        FType = "Folder"
    ElseIf fso.FileExists(mySourceDir) Then
        FType = "File"
        FileName = fso.GetFileName(mySourceDir)
        FolderPath = Left(mySourceDir, Len(mySourceDir) - Len(FileName))
    Else
        Exit Sub
    End If
    Set f = fso.CreateTextFile(myZipFile, True)
        f.Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0))
        f.Close
    Set objShell = CreateObject("Shell.Application")
    Select Case Ftype
        Case "Folder"
            Set objSource = objShell.NameSpace(mySourceDir)
            Set objFolderItem = objSource.Items()
        Case "File"
            Set objSource = objShell.NameSpace(FolderPath)
            Set objFolderItem = objSource.ParseName(FileName)
    End Select
    Set objTarget = objShell.NameSpace(myZipFile)
    intOptions = 256
    objTarget.CopyHere objFolderItem, intOptions
    Do
        WScript.Sleep 1000
    Loop Until objTarget.Items.Count > 0
End Sub

随机文章:

  1. WordPress Cron 定时任务
  2. 在C语言程序中使用cURL库(libcurl)
  3. RasEnumConnections函数返回632错误
  4. 用C语言实现PHP的base64_decode函数
  5. VBScript的结束,Python的开始

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

  1. schang说道:

    其实我有一个问题想问啊,你上面的这个解压缩方法,貌似只能解压缩标准的zip文件,如果有点不一样就不行,能不能扩张一下,实现解压缩WINRAR这样的工具解压大部分压缩文件啊,比如我有一个文件是xxx.png.z(注:QTP 结果文件里生成的压缩图片的文件),用上面的方法就不行了,用那个winrar的方法,有个限制就是有的机器上可能没装,脚本就会报错。所以求关注解决啊!

  2. Jucyfer.X说道:

    代码执行起来没什么问题,但是会弹出一个很明显的复制框,这能不能避免呢?换句话说,能不能后台静默压缩?

  3. 说道:

    看来感觉收益匪浅,感谢博主。有问题想问一下,我用这段代码去压缩文件时,发现,当文件夹内部包含一个空文件夹的时候,会有bug提示信息,大概意思是因为该文件夹下包含空文件夹,因此不可以放入压缩的achive。我也是初学,不知道是自身的缘故还是其他的原因,特此来请教以下。。谢谢。

  4. rhg说道:

    win7执行报错, Set objFolderItem = objSource.Items(), 缺少对象,800a01a8,所传入参数:Zip “D:/workspace/db/20141014”, “D:/workspace/db/20141014.zip”

  5. mzy说道:

    请问如何保留文件夹进行压缩?
    比如
    需要压缩的文件夹为test,包含1.txt

    压缩结果为:test.zip,直接打开zip能看到文件夹test,再进入test,才看见1.txt

留下回复