web-dev-qa-db-ja.com

VBScriptでファイルの完全修飾パスを取得する方法は?

Shell.Applicationオブジェクトを使用しているため、Zipファイルの作成をスクリプト化できます。

しかし、これが機能するためには、Zipファイルのフルパスが必要です。 File.Zipは機能しません。ファイルが見つかったディレクトリと同じディレクトリ内でスクリプトが実行されている場合でも、c:\the\full\path\file.Zipが必要です。

VBScript でファイルのフルパスを取得するにはどうすればよいですか?

Cmd.exeシェルの%~fI展開のようなもの。

18
Cheeso

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
28
Cheeso

例えば

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
5
ghostdog74