'当前文件夹路径 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)