vbscript - 解壓縮 zip 檔案

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 目錄下。