私はVBScriptにかなり慣れていません。私は何を達成しようとしているのかについて大規模な調査を行い、何をすべきかの例を見つけましたが、適切に機能させることはできません.
私の完璧な世界では、サードパーティ ベンダーからフォルダーに送信されたすべての zip ファイルを解凍し、解凍したファイルを別のフォルダーにインポートしてから、zip ファイルを削除する必要があります。
以下のスクリプトは、パスワードで保護されていない zip ファイルに対しては適切に機能しますが、ベンダーから送信されたすべてのファイルにはパスワードが設定されています。別の投稿に見られるように、コメントアウトした次の行にはパスワードを挿入する必要がありますが、挿入しません。「...(pwd+myZipfile)
」と「...(pwd+extractTo)
」。
よろしくお願いします。これを実現するためのコードの改善やその他の方法を提案してください。
pathToZipFile = "P:\ZipFiles"
extractTo = "P:\UnZip"
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(pathToZipFile)
Set fc = f.Files
Dim myZipFile
Dim intOptions, objShell, objSource, objTarget
Dim pwd
pwd = "password"
For Each f1 in fc
On Error Resume Next
myZipFile = f1
' Create the required Shell objects
Set objShell = CreateObject( "Shell.Application" )
' Create a reference to the files and folders
'Set objSource = objShell.NameSpace(pwd+myZipFile).Items( )
Set objSource = objShell.NameSpace(myZipFile).Items( )
' Create a reference to the target folder
Set objTarget = objShell.NameSpace(pwd+extractTo)
Set objTarget = objShell.NameSpace(extractTo)
intOptions = 256
' UnZIP the file
objTarget.CopyHere objSource, intOptions
' Release the objects
Set objSource = Nothing
Set objTarget = Nothing
Set objShell = Nothing
'Delete File from "P:\ZipFiles" after unzipping
fso.DeleteFile f1, True
Next