亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

如何在服務器端調用winzip命令行對上傳的多個文件打包壓縮

2024-05-04 11:10:22
字體:
來源:轉載
供稿:網友
如何在服務器端調用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 " 命令執行失?。嘞薏粔蚧蛘咴摮绦驘o法在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/&#115cript56/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 先創建一個包含所有要解壓的文件的文件,然后按所包含的的文件名解壓
...............(其他具體看幫助文件)
例如:
創建所有文件到當前目錄下
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對象啟動程序
'*********************
<script language="VBscript.Encode" runat=server>
'上面用SHELL對象啟動程序
Set WshShell = server.CreateObject("Wscript.Shell")
IsSuccess = WshShell.Run (" c:/wzzip.exe c:/test.zip c:/a.txt c:/b.txt" ,1, true)
if IsSuccess = 0 Then
Response.write " 命令成功執行!"
else
Response.write " 命令執行失?。嘞薏粔蚧蛘咴摮绦驘o法在DOS狀態下運行"
end if
</script>


怎么樣很簡單吧,如果我們再把文件上傳和此結合起來,就會產生很多使用的功能。如:
在用上傳組件上傳多個文件后,可以對其多個文件打包,以提供給其他人zip文件下載
或者上傳一個zip文件后,可以利用程序對其解壓,以提供給其他人單個文件下載
很方便用戶吧!我會在以后的文章里把這兩種變化寫出來!文中難免有疏漏的地方,請大家多多指正!


以上的例子均在win2000+iis5.0上測試過!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲japanese制服美女| 久久99久久99精品中文字幕| 7777免费精品视频| 欧美另类极品videosbest最新版本| 亚洲丁香久久久| 午夜精品久久久久久久99黑人| 国产精品91久久久久久| 91精品国产91久久久久久久久| 国产精品一区二区av影院萌芽| 日韩欧美成人免费视频| 国内精品国产三级国产在线专| 国产成人亚洲综合| 久久久久久97| 亚洲精品美女久久| 国产精品综合久久久| 欧美孕妇性xx| 热re99久久精品国产66热| 色青青草原桃花久久综合| 亚洲人成在线一二| 欧美电影免费观看| 欧美极品少妇xxxxⅹ裸体艺术| 不卡中文字幕av| 亚洲变态欧美另类捆绑| 日韩av在线播放资源| 久久精品中文字幕一区| 日本a级片电影一区二区| 国产精品热视频| 亚洲无限av看| 欧美日韩一区二区在线| 亚洲欧美制服中文字幕| 国产网站欧美日韩免费精品在线观看| 日韩国产高清视频在线| 欧美日韩国产精品一区二区不卡中文| 亚洲第一精品久久忘忧草社区| 欧美极品少妇xxxxⅹ免费视频| 国内免费久久久久久久久久久| 亚洲毛片在线观看.| 国产99视频精品免视看7| 亚洲激情视频在线| 亚洲男人av在线| 欧美高清性猛交| 欧美二区乱c黑人| 欧美精品亚州精品| 久久影院在线观看| 欧美最猛性xxxxx(亚洲精品)| 欧美猛交ⅹxxx乱大交视频| 91最新国产视频| 国产成人一区二区| 亚洲性线免费观看视频成熟| 欧美大片在线免费观看| 成人精品久久av网站| 91色琪琪电影亚洲精品久久| 欧美性生交大片免网| 国产精品福利小视频| 91干在线观看| 久久夜色精品国产欧美乱| 久久久久久久爱| 亚洲欧美国产制服动漫| 日韩在线观看网址| 美日韩精品免费视频| 国产精品男人爽免费视频1| 91久热免费在线视频| 日韩av中文字幕在线播放| 精品国产91久久久久久老师| 日韩欧美在线视频免费观看| 粉嫩av一区二区三区免费野| 亚洲天堂av在线免费观看| 色妞在线综合亚洲欧美| 亚洲自拍偷拍福利| 成人做爽爽免费视频| 亚洲天堂av网| 日韩在线观看免费网站| 97超视频免费观看| 国产一区二区三区四区福利| 亚洲国产欧美自拍| 欧美一级电影免费在线观看| 久久久久99精品久久久久| 久久人人97超碰精品888| 在线视频欧美性高潮| 久久久久久久爱| 秋霞成人午夜鲁丝一区二区三区| 国产精品视频yy9099| 日韩欧美在线网址| 国产欧美一区二区三区久久| 日韩美女写真福利在线观看| 欧美精品videosex极品1| 国产精品6699| 亚洲第一av网站| 91亚洲国产成人久久精品网站| 欧美一乱一性一交一视频| 久久99久久99精品免观看粉嫩| 国产精品久久久久久五月尺| 国产精品影片在线观看| 欧美黄色三级网站| 亚洲自拍欧美另类| 久久人人爽人人爽人人片av高请| 久久理论片午夜琪琪电影网| 国产一区深夜福利| 欧美日本高清一区| 欧美日韩中文字幕综合视频| 欧美激情视频一区二区三区不卡| 欧美xxxx18性欧美| 国内偷自视频区视频综合| 日韩av不卡电影| 欧美超级免费视 在线| 性欧美视频videos6一9| …久久精品99久久香蕉国产| 欧美二区乱c黑人| 亚洲丁香婷深爱综合| 国产欧美日韩91| 免费99精品国产自在在线| 国产精品电影网| 精品福利在线视频| 亚洲最大的av网站| 国产精品扒开腿做爽爽爽的视频| 亚洲欧洲美洲在线综合| 中文字幕无线精品亚洲乱码一区| 久久电影一区二区| 日韩av在线网址| 成人妇女淫片aaaa视频| 国产精品网红直播| 欧美日韩国产123| 欧美性生交xxxxx久久久| 亚洲乱码国产乱码精品精| 国产xxx69麻豆国语对白| 久久精品中文字幕一区| 亚洲va欧美va在线观看| 欧美专区在线播放| 日韩va亚洲va欧洲va国产| 国产精品99久久久久久白浆小说| 国产91精品在线播放| 亚洲精品国产精品国自产在线| 久久91亚洲精品中文字幕奶水| 亚洲色图综合久久| 在线一区二区日韩| 亚洲欧美激情一区| 大伊人狠狠躁夜夜躁av一区| 国产精品xxxxx| 国模吧一区二区三区| 精品无码久久久久久国产| 亚洲一区二区三区四区在线播放| 国产精品久久中文| 欧美专区国产专区| 日韩亚洲综合在线| 奇米成人av国产一区二区三区| 国产精品99久久久久久久久| 狠狠做深爱婷婷久久综合一区| 久久91精品国产91久久跳| 国产97在线亚洲| 久久成人av网站| 欧美成人精品在线视频| 亚洲自拍偷拍区| 欧美精品九九久久| 欧美电影院免费观看| 欧美激情一二区| 久久国产精品久久久| 亚洲成人网久久久| www.日韩av.com| 欧美尺度大的性做爰视频| 久久6精品影院| 国产网站欧美日韩免费精品在线观看| 久久中文字幕一区| 国产亚洲福利一区| 亚洲无限av看|