WSHだけでZIPファイルを解凍する方法

http://d.hatena.ne.jp/runicalp/20081117/1226912916
エクスプローラの機能を使って解凍するらしい。実際に解凍してるのは最後の3行でそこまでは解凍先の決定だとかの雑務。


'カレントにフォルダを作って解凍します

'オブジェクトを作ります
set fso = WScript.CreateObject("Scripting.FileSystemObject")

'とりあえず解凍する対象は一つだけにします。
If WScript.Arguments.Count < 1 Then
WScript.Echo("ファイルをドロップしてくだせぇ")
WScript.Quit
ElseIf WScript.Arguments.Count > 1 Then
WScript.Echo("1個にしてください・・・")
WScript.Quit
End If
File = WScript.Arguments(0)

If LCase(fso.GetExtensionName(File)) <> "zip" Then
WScript.Echo("ZIP形式のみ解凍できます!")
WScript.Quit()
End If

'フォルダの名前を決めます
ExtractFolder = fso.GetParentFolderName(File) & "\" & fso.GetBaseName(File)

'なかったら作ります
If Not fso.FolderExists(ExtractFolder) Then
fso.CreateFolder(ExtractFolder)
End If

'解凍!
With CreateObject("Shell.Application")
.NameSpace(ExtractFolder).CopyHere .NameSpace(File).Items
End With



ただし、以下の問題がある。

この方法の問題点として、ユーザーのtempフォルダに
「(ファイル名).lzh の一時ディレクトリ 1」なんてフォルダが増殖していくことがあります。
http://d.hatena.ne.jp/Fio/20080916/p1