服务器端调用winzip命令行对上传的多个文件打包压缩

打包|服务器|命令行|上传|压缩

要解决这个问题,首先要了解一下Windows Scripting Host,简称为WSH!下面引用一下微软给的解释:

WSH是微软脚本技术系列中的一种,简单讲,就是提供了一种脚本环境,
在这个环境中,预定义了一些对象,同时也可以使用COM里的其他对象。
他使用一种脚本引擎来对脚本解释执行,微软自己支持VBSCRIPT和JSCRIPT,
第三方也可以开发自己的脚本引擎。

具体点,就是你先编好一些脚本文件(微软自带例子若干,后缀.vbs或 .js),
然后用一个程序对他解释执行,这个程序就叫Windows Scripting Host,程序
的名字是Wscript.exe(或者命令行的Cscript.exe),你可以查看一下你的机器
里有没有这两个文件,就知道有没有WSH了。(win2000是在winnt/system32/下)
这非常像批处理文件,只不过文件里不是命令行,而是脚本语言写的脚本。

再来简单介绍一下WSH自带的几个内置对象包括:

1.由 Wscript.exe 提供的对象
Wscript 作为 Wscript 公开给脚本引擎。
WshArguments 未公开;通过 Wscript.Arguments 属性访问。 入

2.由 WSHom.Ocx 提供的对象。
WshShell 自动对象。ProgID 是 Wscript.WshShell。
(注:这个就是我们要用到的,可以执行dos命令)
WshNetwork 自动对象。ProgID 是 Wscript.WshNetwork。
WshShortcut 未公开;通过 WshShell.CreateShortcut 方法访问。
WshUrlShortcut 未公开;通过 WshShell.CreateShortcut 方法访问。
WshCollection 未公开;通过 WshNetwork.EnumNetworkDrives 或 WshNetwork.EnumPrinterConnection 方法访问。
WshEnvironment 未公开;通过 WshShell.Environment 属性访问。
WshSpecialFolders 未公开;通过 WshShell.Folder 属性访问。

他们主要可以完成环境变量的获取,网络登陆,驱动器映射,快截方式创建,
程序加载,特殊文件夹(如系统文件夹)信息获取等功能。

如果你的系统里支持ADO等COM部件,你同样可以使用,
下面这个例子演示打开写字板查看文本文件,同时创建一个文本文件并写入一
段话,你可以把他拷贝到写字板中,然后以.vbs为后缀存盘,之后双击他,

'test.vbs

'下面用SHELL对象启动程序

Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run ("notepad " & Wscript.ScriptFullName)

'用COM对象Scripting.FileSystemObject操作文本文件

Set fs = Wscript.CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine("这是一个测试。")
a.Close

也可以在asp等web编程语言中应用
<script language="VBScript.Encode" runat=server>
'上面用SHELL对象启动程序
Set WshShell = server.CreateObject("Wscript.Shell")
IsSuccess = WshShell.Run ("D:\winnt\system32\cmd.exe" ,1, true)
if IsSuccess = 0 Then
Response.write " 命令成功执行!"
else
Response.write " 命令执行失败!权限不够或者该程序无法在DOS状态下运行"
end if
</script>
注:
1.其中runat=server必须要有
2.Set WshShell = Wscript.CreateObject("Wscript.Shell")
要改为Set WshShell = server.CreateObject("Wscript.Shell"),
3.参数1代表SW_SHOWNORMAL, 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。
4.TRUE代表返回执行的错误,False或者为指定代表脚本继续执行而不等待进程结束。
5.调用WSH的内置对象了,可以象调用函数和过程一样。
如call WshShell.Run ("D:\winnt\system32\cmd.exe" ,1, true)

如果你对WSH感兴趣,想了解更多的话,请察看
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsconwshbasics.asp
http://www.dev-club.com/club/bbs/showEssence.asp?id=11136

现在我们言归正传来看看如何对文件进行压缩和解压!
大家都知道winzip对文件解压和压缩都易如反掌,但是如何通过程序和命令行对其调用呢?
当然winzip的作者已经开发出
WinZip Command Line Support Add-On Version 1.0
大家去可以去http://www.winzip.com/wzcline.htm 下载wzcline.exe!
前提是本机须安装winzip8.0或更高版本的支持,如果你不是winzip8.0,去
http://www.winzip.com/download.htm 下载!

下载后,直接安装就可以!
就会在winzip的目录中产生winzip命令行帮助文件和程序WZZIP.exe,WZUNZIP.EXE。
你可以开始运行里调用:
如:"c:\program files\winzip\wzzip" myfile.zip
也可以拷贝这里两个文件到任意目录下,直接在dos窗口下运行
如:wzzip.exe myfile.zip
你可以在系统的环境变量里加入set path=c:\windows;c:\program files\winzip;
就可以在任何地方不用加入路经调用了!

现在来简单的了解一下帮助中两个命令的基本用法
压缩文件用 WZZIP.exe :
通用格式:wzzip [options] zipfile [@listfile] [files...]
[options]包括:
-a 默认的操作,压缩文件
-a+ 压缩文件,并删除要压缩的文件
-b[drive|path] 是在另外的驱动器上创建临时压缩文件
-d 删除zip文件中指定的目标文件
-e<x|n|f|s|0> 是设置压缩比率,x最大,0最小
-f 替换zip文件中存在的文件
-h|-? 察看帮助
-v 创建一个压缩文件的列表信息
-@list 先创建一个包含所有要解压的文件的文件,然后按所包含的的文件名压缩
...............(其他具体看帮助文件)
[@listfile] 是压缩文件的列表信息纪录
[files...] 则是要压缩的多个文件,用空格隔开,也可以用通配符

例:
压缩当前目录的所有文件
wzzip test.zip *.*
压缩类型为txt的所有文件
wzzip test.zip *.txt
压缩两个文件
wzzip test.zip abc.txt def.txt
压缩类型为txt的所有文件除了abc.txt
wzzip -xABC.TXT test.zip *.txt
压缩D:\docs下的所有类型为txt的文件及子目录
wzzip -rp test.zip d:\docs\*.txt
把zipit.1st里的文件更新到test.zip
wzzip -u test.zip @Zipit.lst
列出一个压缩文件的列表内容
wzzip -v test.zip

解压文件用WZUNZIP.exe :
通过格式:wzunzip [options] zipfile [@listfile] [path] [files...]
[options]包括:
-c[m] 解压是显示文件列表在dos屏幕中
-d 重建zip文件中的目录结构
-f 只解压在zip文件里同目前文件夹存在的同名的文件,如果没有则不解压
-jhrs 忽视zip文件里的文件的隐藏、只读、系统属性
-Jhrs 只解压带有隐藏、只读、系统属性的文件
-n 只解压叫新的文件,如果要解压的文件比已存在的新则替换。
-o 不用通过yes来确定是否要替换文件
-v 创建一个压缩文件的列表信息
-@list 先创建一个包含所有要解压的文件的文件,然后按所包含的的文件名解压
..........

时间: 2024-12-29 16:28:56

服务器端调用winzip命令行对上传的多个文件打包压缩的相关文章

如何在服务器端调用winzip命令行对上传的多个文件打包压缩?(天乐原创)

打包|服务器|命令行|上传|压缩|原创 如何在服务器端调用winzip命令行对上传的多个文件打包压缩? 要解决这个问题,首先要了解一下Windows Scripting Host,简称为WSH!下面引用一下微软给的解释:*************************************************************************  WSH是微软脚本技术系列中的一种,简单讲,就是提供了一种脚本环境,     **  在这个环境中,预定义了一些对象,同时也可以使用

调用winzip命令行对上传的多个文件打包压缩

打包|命令行|上传|压缩 如何在服务器端调用winzip命令行对上传的多个文件打包压缩? 要解决这个问题,首先要了解一下Windows Scripting Host,简称为WSH!下面引用一下微软给的解释:*************************************************************************  WSH是微软脚本技术系列中的一种,简单讲,就是提供了一种脚本环境,     **  在这个环境中,预定义了一些对象,同时也可以使用COM里的其他

python 读写-python 调用windows 命令行

问题描述 python 调用windows 命令行 def start(count): log_name ='c:log' +str(count) cmd = 'c:tooltool.exe > ' + log_name os.popen(cmd) 在windows环境下执行tool.exe重定向 循环处理多了 会报错 close failed in file object destructor:IOError: [ERROR 0] Error请问是什么原因? 解决方案 导出的文件打开失败?或者

shell命令行参数-Linuxshell脚本中调用可执行程序命令行参数出现丢失错误

问题描述 Linuxshell脚本中调用可执行程序命令行参数出现丢失错误 #!/bin/bash If [$1 == "-i"] then TM_demo $1 $2 fi If [$1 == "-f"] then TM_demo $1 $2 $3 $4 fi 在linux执行的时候./a.sh -f data,出现 [:丢失了"]",大神帮帮忙! 解决方案 [和]不是shell的meta character,所以需要跟其它标识符用blank/s

windows-Eclipse调用Windows命令行

问题描述 Eclipse调用Windows命令行 如何在Eclipse中运行命令行,实现测试用例的编译运行?我准备采用Process来完成. 解决方案 一般可以用ant或者maven. 解决方案二: 是这样的.实现了.谢谢. 解决方案三: 那怎么实现Eclipse获取ant执行后的结果呢?

python调用cmd命令行制作刷博器_python

复制代码 代码如下: import webbrowser as webimport timeimport os count=0while count<10:    count=count+1    #你要刷的博客    web.open_new_tab("这里是博客地址")    time.sleep(1)else:    os.system('taskkill /F /IM  360se.exe') 这里主要学到三个知识点: 1.Python的线程原来是在time模块下 2.P

命令行 批处理-如何将多个文件拖入命令行并获取所有文件的路径

问题描述 如何将多个文件拖入命令行并获取所有文件的路径 我将多个文件拖入命令行,只显示第一个文件的路径,我只能一个一个拖入,很麻烦. 如何做到多个文件拖入,并显示所有文件的路径 解决方案 你好,你说的问题我试了,也不知道怎么解决. 但你的需求是不是获取文件全路径/相对路径的简便方法? 1.进入文件所在目录,在地址栏输入"cmd",然后回车,可以进入cmd窗口并且直接进入到当前目录 2.直接输入dir命令,可以直接显示出所有的文件的相对路径 3.你可以将内容copy到ue编辑器中用列模式

通过Mysql命令行语句来导入导出数据库文件

  今天有个同学问我说能不能将数据库进行迁移,我当时想那应该得重新建表吧,不过那样效率太低了,而且还需要导入很多表中的记录,麻烦,于是想到mysql的bin中提供了两个指令,mysqldump以及resource. Mysql命令行导出数据库: 1.首先我们通过命令行进入到mysql安装目录的bin目录下,比如我输入的命令行为: cd C:Program FilesMySQLMySQL Server 5.5bin (如果是win7系统,且mysql安装在C盘目录下,如果上述指令提示拒绝访问,那就

Linux下七牛云存储qrsync命令行上传同步工具

VPS数据备份是一个重要的工作,之前在文章:使用七牛云存储自动备份VPS数据分享过使用七牛云存储提供的工具QRSBox来备份数据,这篇文章介绍下七牛的另一个工具qrsync,qrsync支持断点续上传,增量同步,它可将用户本地的某目录的文件同步到七牛云存储中,同步或上传几百GB甚至上TB的文件毫无鸭梨. 一.软件下载  代码如下 复制代码 mkdir qrsync              ### 创建qrsync目录 cd qrsync                 ### 进入qrsync