0

ネットワーク共有ドライブ上の zip ファイルからファイルを抽出したいと考えています。ただし、サブルーチンは例外をスローしています--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

何か案は?ありがとう!

4

3 に答える 3

1

ネットワーク パスを引用してみてください。したがって、コマンドは次のようになります。

Extract "\\driveName\Folder\Path\Here\" & file, """\\driveName\Folder\Path\Here\Unzipped"""
于 2013-02-01T22:50:41.863 に答える
1

他のすべてが失敗した場合は、ファイルを手動で開き、zip ヘッダーを削除できます。どうやら、zip ヘッダーは数文字と null で終わる文字列であり、これらを削除するとファイルが解凍されます。 http://tek-tips.com/viewthread.cfm?qid=1302498には、スレッドの途中にある詳細情報があります。

于 2013-02-04T21:59:23.893 に答える
1

そのエラーの他の考えられる理由:

If objTarget Is Nothing Then
    WScript.Echo "Target path not exist"
Else
    objTarget.CopyHere objSource, intOptions
End If
于 2013-02-02T15:56:58.070 に答える