
'当前文件夹路径 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,,True)
If intSecceed = Then
Response.Write("命令成功执行,返回码:" & intSecceed)
Else
Response.Write("命令执行失败,返回码:" & intSecceed)