使用脚本解压缩共享驱动器上的文件

时间:2013-02-01 20:59:31

标签: vbscript vb6

我想从网络共享驱动器上的zip文件中提取文件。但是,sub正在抛出异常 - VBScript runtime error: Object required: 'objTarget'

我这样称呼子:

Extract "\\driveName\Folder\Path\Here" & file, "\\driveName\Folder\Path\Here\Unzipped"

这很奇怪,因为设置objSource的代码可以正常工作,但是当代码尝试设置objTarget时,它会出错。此外,当我指定本地驱动器时,它可以正常工作。我假设我必须做一些修改才能使其正常运行(如果可能的话)。以下是子:

Sub Extract(ByVal myZipFile, ByVal myTargetDir)

    Dim intOptions, objShell, objSource, objTarget

    ' Create the required Shell objects
    Set objShell = CreateObject("Shell.Application")

    ' Create a reference to the files and folders in the ZIP file
    Set objSource = objShell.NameSpace(myZipFile).Items()

    ' Create a reference to the target folder
    Set objTarget = objShell.NameSpace(myTargetDir)

    intOptions = 4

    ' Unzip the files
    objTarget.CopyHere objSource, intOptions

    ' Release the objects
    Set objSource = Nothing
    Set objTarget = Nothing
    Set objShell  = Nothing
End Sub

有什么想法吗?谢谢!

3 个答案:

答案 0 :(得分:1)

尝试引用网络路径。所以你的命令是:

Extract "\\driveName\Folder\Path\Here\" & file, """\\driveName\Folder\Path\Here\Unzipped"""

答案 1 :(得分:1)

该错误的其他可能原因:

If objTarget Is Nothing Then
    WScript.Echo "Target path not exist"
Else
    objTarget.CopyHere objSource, intOptions
End If

答案 2 :(得分:1)

如果所有其他方法都失败了,您可以手动打开文件并删除zip标题。显然,zip标头是一些字符和一个以空字符结尾的字符串,如果删除它们,文件将解压缩。 http://tek-tips.com/viewthread.cfm?qid=1302498提供了更多信息,大约是线程的一半。