vbscript - 解壓縮 zip 檔案
上次朋友打電話來求救,遇到某單位不准他們在伺服器上安裝任何軟體。
所以,像是平時常用的 pkzip、winzip、7-Zip 等需要額外安裝的命令列指令就幫不上忙。
但是,朋友的系統功能裡面卻遇到需要解壓縮 zip 檔案的功能。
索性死馬當活馬醫,從 Dos 指令或是 vbscript 中下手,看看能不能找到一些解決的辦法。
常用 Windows 的人應該知道,從 XP 開始檔案總管就內建支援檢視 zip 檔案的功能。
所以,從 Windows 內建得方式,應該可以解決吧?
查到 Windows 指令:rundll32.exe zipfldr.dll,RouteTheCall [filename]
可以模擬檔案總管下,使用滑鼠雙擊 zip 檔案就會可以看到 zip 檔案內容。
但是,只會跳出檔案總管介面,還是要手動操作才能解壓縮檔案。
PS.
如果你裝了 7-Zip、WinRAR 或是 WinZip 後,Windows 內建的檢視 zip 檔案其實根本不需要。
可以執行命令進行移除:regsvr32 /u zipfldr.dll
重新安裝指令:regsvr32 zipfldr.dll
山不轉路轉,從 vbscript 來下手,unzip.vbs:
Set Ag=Wscript.Arguments
Set WshShell = CreateObject("Wscript.Shell")
user = WshShell.ExpandEnvironmentStrings("%UserName%")
Set objShell = CreateObject("Shell.Application")
Set strZipFile = objShell.NameSpace(Ag(0))
Set outFolder = objShell.NameSpace(Ag(1))
Set objSource = objShell.NameSpace(strZipFile).Items()
Set objTarget = objShell.NameSpace(outFolder)
intOptions = 256
objTarget.CopyHere objSource, intOptions
其中 Ag(0) 為 zip 檔案名稱,Ag(1) 為解壓縮目的地目錄
執行方式:unzip.vbs "C:\test.zip" "C:\Tmp"
就會執行 unzip.vbs 把 C:\test.zip 檔案,解壓縮至 C:\Tmp 目錄下。