明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

在服務(wù)器端調(diào)用winzip對(duì)上傳的多個(gè)文件壓縮

[摘要]如何在服務(wù)器端調(diào)用winzip命令行對(duì)上傳的多個(gè)文件打包壓縮? 要解決這個(gè)問(wèn)題,首先要了解一下Windows Scripting Host,簡(jiǎn)稱為WSH!下面引用一下微軟給的解釋: **********************************************************...

如何在服務(wù)器端調(diào)用winzip命令行對(duì)上傳的多個(gè)文件打包壓縮? 

要解決這個(gè)問(wèn)題,首先要了解一下Windows Scripting Host,簡(jiǎn)稱為WSH!下面引用一下微軟給的解釋: 
************************************************************************ 
* WSH是微軟腳本技術(shù)系列中的一種,簡(jiǎn)單講,就是提供了一種腳本環(huán)境, * 
* 在這個(gè)環(huán)境中,預(yù)定義了一些對(duì)象,同時(shí)也可以使用COM里的其他對(duì)象。 * 
* 他使用一種腳本引擎來(lái)對(duì)腳本解釋執(zhí)行,微軟自己支持VBSCRIPT和JSCRIPT, * 
* 第三方也可以開(kāi)發(fā)自己的腳本引擎。 * 
************************************************************************ 
具體點(diǎn),就是你先編好一些腳本文件(微軟自帶例子若干,后綴.vbs或 .js), 
然后用一個(gè)程序?qū)λ忉寛?zhí)行,這個(gè)程序就叫Windows Scripting Host,程序 
的名字是Wscript.exe(或者命令行的Cscript.exe),你可以查看一下你的機(jī)器 
里有沒(méi)有這兩個(gè)文件,就知道有沒(méi)有WSH了。(win2000是在winnt/system32/下) 
這非常像批處理文件,只不過(guò)文件里不是命令行,而是腳本語(yǔ)言寫(xiě)的腳本。 

再來(lái)簡(jiǎn)單介紹一下WSH自帶的幾個(gè)內(nèi)置對(duì)象包括: 

1.由 Wscript.exe 提供的對(duì)象 
Wscript 作為 Wscript 公開(kāi)給腳本引擎。 
WshArguments 未公開(kāi);通過(guò) Wscript.Arguments 屬性訪問(wèn)。 入 

2.由 WSHom.Ocx 提供的對(duì)象。 
WshShell 自動(dòng)對(duì)象。ProgID 是 Wscript.WshShell。 
(注:這個(gè)就是我們要用到的,可以執(zhí)行dos命令) 
WshNetwork 自動(dòng)對(duì)象。ProgID 是 Wscript.WshNetwork。 
WshShortcut 未公開(kāi);通過(guò) WshShell.CreateShortcut 方法訪問(wèn)。 
WshUrlShortcut 未公開(kāi);通過(guò) WshShell.CreateShortcut 方法訪問(wèn)。 
WshCollection 未公開(kāi);通過(guò) WshNetwork.EnumNetworkDrives 或 WshNetwork.EnumPrinterConnection 方法訪問(wèn)。 
WshEnvironment 未公開(kāi);通過(guò) WshShell.Environment 屬性訪問(wèn)。 
WshSpecialFolders 未公開(kāi);通過(guò) WshShell.Folder 屬性訪問(wèn)。 

他們主要可以完成環(huán)境變量的獲取,網(wǎng)絡(luò)登陸,驅(qū)動(dòng)器映射,快截方式創(chuàng)建, 
程序加載,特殊文件夾(如系統(tǒng)文件夾)信息獲取等功能。 

如果你的系統(tǒng)里支持ADO等COM部件,你同樣可以使用, 
下面這個(gè)例子演示打開(kāi)寫(xiě)字板查看文本文件,同時(shí)創(chuàng)建一個(gè)文本文件并寫(xiě)入一 
段話,你可以把他拷貝到寫(xiě)字板中,然后以.vbs為后綴存盤(pán),之后雙擊他, 

'test.vbs 
'********************* 
'下面用SHELL對(duì)象啟動(dòng)程序 
'********************* 
Set WshShell = Wscript.CreateObject("Wscript.Shell") 
WshShell.Run ("notepad " & Wscript.ScriptFullName) 


'*********************************************** 
'用COM對(duì)象Scripting.FileSystemObject操作文本文件 
'*********************************************** 
Set fs = Wscript.CreateObject("Scripting.FileSystemObject") 
Set a = fs.CreateTextFile("c:\testfile.txt", True) 
a.WriteLine("這是一個(gè)測(cè)試。") 
a.Close 

也可以在asp等web編程語(yǔ)言中應(yīng)用 
<script language="VBScript.Encode" runat=server> 
'上面用SHELL對(duì)象啟動(dòng)程序 
Set WshShell = server.CreateObject("Wscript.Shell") 
IsSuccess = WshShell.Run ("D:\winnt\system32\cmd.exe" ,1, true) 
if IsSuccess = 0 Then 
Response.write " 命令成功執(zhí)行!" 
else 
Response.write " 命令執(zhí)行失敗!權(quán)限不夠或者該程序無(wú)法在DOS狀態(tài)下運(yùn)行" 
end if 
</script> 
注: 
1.其中runat=server必須要有 
2.Set WshShell = Wscript.CreateObject("Wscript.Shell") 
要改為Set WshShell = server.CreateObject("Wscript.Shell"), 
3.參數(shù)1代表SW_SHOWNORMAL, 激活并顯示一個(gè)窗口。若窗口是最小化或最大化,則恢復(fù)到其原來(lái)的大小和位置。 
4.TRUE代表返回執(zhí)行的錯(cuò)誤,F(xiàn)alse或者為指定代表腳本繼續(xù)執(zhí)行而不等待進(jìn)程結(jié)束。 
5.調(diào)用WSH的內(nèi)置對(duì)象了,可以象調(diào)用函數(shù)和過(guò)程一樣。 
如call WshShell.Run ("D:\winnt\system32\cmd.exe" ,1, true) 

如果你對(duì)WSH感興趣,想了解更多的話,請(qǐng)察看 
http://msdn.microsoft.com/library/d...onwshbasics.asp 
http://www.dev-club.com/club/bbs/sh...ce.asp?id=11136 

現(xiàn)在我們言歸正傳來(lái)看看如何對(duì)文件進(jìn)行壓縮和解壓! 
大家都知道winzip對(duì)文件解壓和壓縮都易如反掌,但是如何通過(guò)程序和命令行對(duì)其調(diào)用呢? 
當(dāng)然winzip的作者已經(jīng)開(kāi)發(fā)出 
WinZip Command Line Support Add-On Version 1.0 
大家去可以去http://www.winzip.com/wzcline.htm 下載wzcline.exe! 
前提是本機(jī)須安裝winzip8.0或更高版本的支持,如果你不是winzip8.0,去 
http://www.winzip.com/download.htm 下載! 

下載后,直接安裝就可以! 
就會(huì)在winzip的目錄中產(chǎn)生winzip命令行幫助文件和程序