Shell.Application
オブジェクトを使用しているため、Zipファイルの作成をスクリプト化できます。
しかし、これが機能するためには、Zipファイルのフルパスが必要です。 File.Zip
は機能しません。ファイルが見つかったディレクトリと同じディレクトリ内でスクリプトが実行されている場合でも、c:\the\full\path\file.Zip
が必要です。
VBScript でファイルのフルパスを取得するにはどうすればよいですか?
Cmd.exeシェルの%~fI
展開のようなもの。
Scripting.FileSystemObject には、これを行う GetAbsolutePathName というメソッドがあります。
これは私のために働いたものです:
Dim folderName
folderName = "..\.."
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim fullpath
fullpath = fso.GetAbsolutePathName(folderName)
WScript.Echo "folder spec: " & folderName
WScript.Echo "fullpath: " & fullpath
例えば
Set objFS=CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
strFile= objArgs(0)
Set objFile = objFS.OpenTextFile(strFile)
Set objFile = objFS.GetFile(strFile)
WScript.Echo objFile.Path
コマンドラインで
c:\test> cscript //nologo myscript.vbs myfile