18 Jun 2012

xp下用命令行解压缩zip文件

前面有篇帖子提到了使用SHFileOperation函数来模拟explore复制解压缩zip文件,可惜经过测试,在win7和vista下好使,xp系统(32位和64位都已测试)均无效,目前失败原因不得而知,因为没有报错,返回值正常.因此需要另辟蹊径,使用其他办法来解压缩zip文件.除非你想使用现成的开源库(例如zlib,7z等)或者通过调用exe的方式来解压缩.

这里是xp下测试好用的vbs解压缩函数.使用时,只需要将函数写入临时vbs文件,调用cmd运行cscript temp.vbs即可,运行完了删除vbs文件就行.

UnZip "C:\Test\t\test.zip","C:\Test\t\test"
Msgbox "OK"

Sub UnZip(ByVal myZipFile, ByVal myTargetDir)
Set fso = CreateObject("Scripting.FileSystemObject")
If NOT fso.FileExists(myZipFile) Then
Exit Sub
ElseIf fso.GetExtensionName(myZipFile) <> "zip" Then
Exit Sub
ElseIf NOT fso.FolderExists(myTargetDir) Then
fso.CreateFolder(myTargetDir)
End If
Set objShell = CreateObject("Shell.Application")
Set objSource = objShell.NameSpace(myZipFile)
Set objFolderItem = objSource.Items()
Set objTarget = objShell.NameSpace(myTargetDir)
intOptions = 256
objTarget.CopyHere objFolderItem, intOptions
End Sub

No comments :

Post a Comment