'当前文件夹路径 server.MapPath("./")
'网站根目录  server.MapPath("/")

Dim strZipFolder     ' 待压缩的文件夹
Dim strRarFile         ' 生成的压缩文件名
Dim strUnZipFolder    ' 解压文件夹
Dim strCmd             ' 命令行

strZipFolder =  Server.MapPath("./") & "\1.txt"
strRarFile  =  Server.MapPath("./") &"\"& "Test.Rar"
strUnZipFolder =  Server.MapPath("./UnZip") & "\"

' 构造命令行
'-----------------------------------------------
'使用参数说明
'命令 A - 添加文件到压缩文件
'命令 X - 以完整路径名称从压缩文件解压压缩
'开关 -IBCK  -  在后台运行 WinRAR
'开关 -R  -  连同子文件夹
'开关 -EP1  -  从名称中排除主文件夹
'开关 -Y  -  假设全部的询问回应皆为“是”
'------------------------------------------------
If Request.QueryString("act") = "zip" Then 
    ' Fso测试用,生成压缩文件前删除同名文件.
    ' 这里也许可以有开关设置可以直接覆盖原文件的,没找着,反正这里主要是看如何调用外部程序的.
    Dim objFso
    Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    If objFso.FileExists(strRarFile) Then objFso.DeleteFile(strRarFile)
    Set objFso = Nothing
    strCmd = "winrar a -ibck -r -ep1 -y " & strRarFile & " " & strZipFolder  '压缩
Else 
    strCmd = "winrar x -ibck -r -y " & strRarFile & " " & strUnZipFolder  '解压
End If

'执行命令行
Dim objShell
Dim intSecceed
Set objShell = Server.CreateObject("WScript.Shell")
Response.Write(strCmd & "<hr>")
intSecceed = objShell.Run(strCmd,0,True)
If intSecceed = 0 Then
    Response.Write("命令成功执行,返回码:" & intSecceed)
Else
    Response.Write("命令执行失败,返回码:" & intSecceed)

 

posted on 2015-07-22 13:15  小!千  阅读(489)  评论(0编辑  收藏  举报