中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > WSH調(diào)用winzip命令進行打包壓縮
用ASP編寫計數(shù)器的方法 回到列表 用ASP實現(xiàn)ASP文件的運行
 WSH調(diào)用winzip命令進行打包壓縮

作者:tonnycncn 時間: 2003-12-16 文檔類型:原創(chuàng) 來自:CSDN

要解決這個問題,首先要了解一下Windows Scripting Host,簡稱為WSH!下面引用一下微軟給的解釋:

 WSH是微軟腳本技術(shù)系列中的一種,簡單講,就是提供了一種腳本環(huán)境,
 在這個環(huán)境中,預(yù)定義了一些對象,同時也可以使用COM里的其他對象。
 他使用一種腳本引擎來對腳本解釋執(zhí)行,微軟自己支持VBSCRIPT和JSCRIPT,
 第三方也可以開發(fā)自己的腳本引擎。

具體點,就是你先編好一些腳本文件(微軟自帶例子若干,后綴.vbs或 .js),
然后用一個程序?qū)λ忉寛?zhí)行,這個程序就叫Windows Scripting Host,程序
的名字是Wscript.exe(或者命令行的Cscript.exe),你可以查看一下你的機器
里有沒有這兩個文件,就知道有沒有WSH了。(win2000是在winnt/system32/下)
這非常像批處理文件,只不過文件里不是命令行,而是腳本語言寫的腳本。

再來簡單介紹一下WSH自帶的幾個內(nèi)置對象包括:

1.由 Wscript.exe 提供的對象
Wscript 作為 Wscript 公開給腳本引擎。
WshArguments 未公開;通過 Wscript.Arguments 屬性訪問。 入

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

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

如果你的系統(tǒng)里支持ADO等COM部件,你同樣可以使用,
下面這個例子演示打開寫字板查看文本文件,同時創(chuàng)建一個文本文件并寫入一
段話,你可以把他拷貝到寫字板中,然后以.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編程語言中應(yīng)用
<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 " 命令成功執(zhí)行!"
else
Response.write " 命令執(zhí)行失敗!權(quán)限不夠或者該程序無法在DOS狀態(tài)下運行"
end if
</script>


注:
1.其中runat=server必須要有
2.Set WshShell = Wscript.CreateObject("Wscript.Shell")
要改為Set WshShell = server.CreateObject("Wscript.Shell"),
3.參數(shù)1代表SW_SHOWNORMAL, 激活并顯示一個窗口。若窗口是最小化或最大化,則恢復(fù)到其原來的大小和位置。
4.TRUE代表返回執(zhí)行的錯誤,F(xiàn)alse或者為指定代表腳本繼續(xù)執(zhí)行而不等待進程結(jié)束。
5.調(diào)用WSH的內(nèi)置對象了,可以象調(diào)用函數(shù)和過程一樣。
如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

現(xiàn)在我們言歸正傳來看看如何對文件進行壓縮和解壓!
大家都知道winzip對文件解壓和壓縮都易如反掌,但是如何通過程序和命令行對其調(diào)用呢?
當(dāng)然winzip的作者已經(jīng)開發(fā)出
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的目錄中產(chǎn)生winzip命令行幫助文件和程序WZZIP.exe,WZUNZIP.EXE。
你可以開始運行里調(diào)用:
如:"c:\program files\winzip\wzzip" myfile.zip
也可以拷貝這里兩個文件到任意目錄下,直接在dos窗口下運行
如:wzzip.exe myfile.zip
你可以在系統(tǒng)的環(huán)境變量里加入set path=c:\windows;c:\program files\winzip;
就可以在任何地方不用加入路經(jīng)調(diào)用了!

現(xiàn)在來簡單的了解一下幫助中兩個命令的基本用法
壓縮文件用 WZZIP.exe :
通用格式:wzzip [options] zipfile [@listfile] [files...]
[options]包括:
-a 默認(rèn)的操作,壓縮文件
-a+ 壓縮文件,并刪除要壓縮的文件
-b[drive|path] 是在另外的驅(qū)動器上創(chuàng)建臨時壓縮文件
-d 刪除zip文件中指定的目標(biāo)文件
-e<x|n|f|s|0> 是設(shè)置壓縮比率,x最大,0最小
-f 替換zip文件中存在的文件
-h|-? 察看幫助
-v 創(chuàng)建一個壓縮文件的列表信息
-@list 先創(chuàng)建一個包含所有要解壓的文件的文件,然后按所包含的的文件名壓縮
...............(其他具體看幫助文件)
[@listfile] 是壓縮文件的列表信息紀(jì)錄
[files...] 則是要壓縮的多個文件,用空格隔開,也可以用通配符

例:
壓縮當(dāng)前目錄的所有文件
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
列出一個壓縮文件的列表內(nèi)容
wzzip -v test.zip


解壓文件用WZUNZIP.exe :
通過格式:wzunzip [options] zipfile [@listfile] [path] [files...]
[options]包括:
-c[m] 解壓是顯示文件列表在dos屏幕中
-d 重建zip文件中的目錄結(jié)構(gòu)
-f 只解壓在zip文件里同目前文件夾存在的同名的文件,如果沒有則不解壓
-jhrs 忽視zip文件里的文件的隱藏、只讀、系統(tǒng)屬性
-Jhrs 只解壓帶有隱藏、只讀、系統(tǒng)屬性的文件
-n 只解壓叫新的文件,如果要解壓的文件比已存在的新則替換。
-o 不用通過yes來確定是否要替換文件
-v 創(chuàng)建一個壓縮文件的列表信息
-@list 先創(chuàng)建一個包含所有要解壓的文件的文件,然后按所包含的的文件名解壓
...............(其他具體看幫助文件)
例如:
創(chuàng)建所有文件到當(dāng)前目錄下
wzunzip test.zip
從test.zip中創(chuàng)建abc.txt到當(dāng)前目錄下
wzunzip test.zip abc.txt
創(chuàng)建在test.zip中的目錄結(jié)構(gòu)及文件到當(dāng)前目錄下
wzunzip -d test.zip
創(chuàng)建在test.zip中的目錄結(jié)構(gòu)及文件到c:\docs下
wzunzip -d test.zip c:\docs從test.zip中創(chuàng)建包含在files.ist中的文件名的文件
wzunzip test.zip @files.lst
顯示test.zip的文件列表內(nèi)容
wzunzip -v test.zip
顯示壓縮文件中所有類型為txt的文件列表內(nèi)容
wzunzip -v test.zip *.txt


有了以上的準(zhǔn)備,那么我們現(xiàn)在來編寫VBS來執(zhí)行文件解壓和壓縮就易如反掌了:

'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 " 命令成功執(zhí)行!"
else
Response.write " 命令執(zhí)行失。(quán)限不夠或者該程序無法在DOS狀態(tài)下運行"
end if
</script>


如果我們再把文件上傳和此結(jié)合起來,就會產(chǎn)生很多使用的功能。如:
在用上傳組件上傳多個文件后,可以對其多個文件打包,以提供給其他人zip文件下載
或者上傳一個zip文件后,可以利用程序?qū)ζ浣鈮,以提供給其他人單個文件下載
本文是作者經(jīng)總結(jié)而作。文中難免有疏漏的地方,請大家多多指正!

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


出處:CSDN
責(zé)任編輯:cjj

◎進入論壇網(wǎng)絡(luò)編程版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
[ASP]利用 xmlhttp 分塊上傳文件
ASP 中健壯的頁結(jié)構(gòu)的異常處理
改進 ASP 的字符串處理性能
ASP 指南
ASP編程入門進階
作者文章
WSH調(diào)用winzip命令進行打包壓縮
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大福“敬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機會
阿里行云
云手機年終巨獻,送禮標(biāo)配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2