系統內容:
需求:因為是作為伺服器端的,不想安裝任何第三方軟體,所以決定使用windows內建的命令進行檔案或檔案夾的壓縮
解決過程:
通常我們使用C:\Documents and Settings\root\SendTo\壓縮(zipped)檔案夾這個功能進行壓縮,但是可以查看這個僅僅是 Explorer shell command,具體解釋可以查看原文連結
因為不是一個可執行程式,所以我們無法通過在cmd中直接調用,貌似無法進展了
既然無法直接調用,那我們可以通過間接調用,通過VSB指令碼調用COM介面從而調用內建的zip,因為SCript.exe從Windows98開始就預設安裝了。有了思路就開始解決吧
編寫VBS指令碼,zip.vbs
Set objArgs = WScript.ArgumentsZipFile = objArgs(0)' Create empty ZIP file and open for addingCreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)Set zip = CreateObject("Shell.Application").NameSpace(ZipFile)' Add all files/directories to the .zip fileFor i = 1 To objArgs.count-1 zip.CopyHere(objArgs(i)) WScript.Sleep 10000 'REQUIRED!! (Depending on file/dir size)Next
呼叫指令碼
cscript zip.vbs target.zip sourceFile1 sourceDir2
執行個體:
當然如果你更懶的話可以編寫一個bat處理指令碼直接寫好需要壓縮的檔案雙擊運行即可
例如:zip.bat
set SRC=d:\src.txtset TAR=d:\tar.zipecho 'begin zip files'cscript d:\zip.vbs %TAR% %SRC%echo 'success'pause
參考連結:
windows內建zip說明 http://filext.com/faq/compressed_zip_folder.php
VBS指令碼 http://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili