加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2019-12-18 02:37:31 所属栏目:编程 来源:蓝点
导读:如安在 处事器 端挪用winzip呼吁行对上传的多个文件打包压缩? 要办理这个题目,起主要相识一下Windows Scripting Host,简称为WSH!下面引用一下 微软 给的表明: ************************************************************************ *WSH是 微软
如安在处事器端挪用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编程说话中应用



注:

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:winntsystem32cmd.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 fileswinzipwzzip"  myfile.zip

也可以拷贝这里两个文件到恣意目次下,直接在dos窗口下运行

如:wzzip.exe  myfile.zip

你可以在体系的情形变量里插手set path=c:windows;c:program fileswinzip;

就可以在任那里所不消插手路经挪用了!



此刻来简朴的相识一下辅佐中两个呼吁的根基用法

压缩文件用 WZZIP.exe :

通用名目:wzzip [options] zipfile [@listfile] [files...]

[options]包罗:

-a              默认的操纵,压缩文件

-a+             压缩文件,并删除要压缩的文件

-b[drive|path]    是在其它的驱动器上建设姑且压缩文件

-d              删除zip文件中指定的方针文件

-e   是配置压缩比率,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            先建设一个包括全部要解压的文件的文件,然后按所包括的的文件名解压

...............(其他详细看辅佐文件)

譬喻:

建设全部文件到当前目次下

wzunzip test.zip

从test.zip中建设abc.txt到当前目次下

wzunzip test.zip abc.txt

建设在test.zip中的目次布局及文件到当前目次下

wzunzip -d test.zip

建设在test.zip中的目次布局及文件到c:docs下

wzunzip -d test.zip c:docs从test.zip中建设包括在files.ist中的文件名的文件

wzunzip test.zip @files.lst

表现test.zip的文件列表内容

wzunzip -v test.zip

表现压缩文件中全部范例为txt的文件列表内容

wzunzip -v test.zip *.txt





有了以上的筹备,那么我们此刻来编写VBS来执行文件解压和压缩就轻而易举了:

'test.vbs

'*********************

'上面用SHELL工具启动措施

'*********************

Set WshShell = Wscript.CreateObject("Wscript.Shell")

WshShell.Run ("c:wzzip.exe c:test.zip c:a.txt c:b.txt")





'test.asp

'*********************

'上面用SHELL工具启动措施

'*********************







怎么样很简朴吧,假如我们再把文件上传和此团结起来,就会发生许多行使的成果。如:

在用上传组件上传多个文件后,可以对其多个文件打包,以提供应其他人zip文件下载

可能上传一个zip文件后,可以操作措施对其解压,以提供应其他人单个文件下载

很利便用户吧!我会在往后的文章里把这两种变革写出来!文中不免有疏漏的处所,请各人多多指正!

有题目可以接洽comezxn@163.com 或 在http://club.topdigi.com.cn接头!





以上的例子均在win2000+iis5.0上测试过!




(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读