在服務器端調用winzip對上傳的多個文件壓縮
發表時間:2024-01-15 來源:明輝站整理相關軟件相關文章人氣:
[摘要]如何在服務器端調用winzip命令行對上傳的多個文件打包壓縮? 要解決這個問題,首先要了解一下Windows Scripting Host,簡稱為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編程語言中應用
<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/d...onwshbasics.asp
http://www.dev-club.com/club/bbs/sh...ce.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命令行幫助文件和程序