#navi(../)
* VBScriptでフルパスでからファイル名のみ取り出す方法 [#t20412aa]
VBScriptでフルパスでからファイル名のみ取り出す方法を以下に記します。~
本記事では、FileSystemObjectのGetBaseName, GetExtensionNameメソッドを使用して実現しています。~
以下にVBScriptのサンプルコードと実行結果について記します。
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* ファイル名のみ取り出すVBScriptサンプルコード [#oa6a01aa]
#ref(basename.vbs)
1: Set fso = CreateObject("Scripting.FileSystemObject")
2:
3: filename = Array("c:\a\b\c\sakura.txt", "c:\x\y\z\tubaki")
4: For i = 0 To UBound(filename)
5: WScript.Echo "Target filename = " & filename(i)
6: basename = fso.GetBaseName(filename(i))
7: WScript.Echo "GetBaseName = " & basename
8: extension = fso.GetExtensionName(filename(i))
9: WScript.Echo "GetExtensionName = " & extension
10: If Len(extension) = 0 Then
11: WScript.Echo "FileName = " & basename
12: Else
13: WScript.Echo "FileName = " & basename & "." & extension
14: End If
15: Next
16:
17: Set fso = Nothing
上記のサンプルコードは、以下のように動作します。~
3行目でプルパス名のファイル名文字列を2つ用意しました。1つ目は拡張子あり。2つ目は拡張子なしになります。~
4行目と15行目は3行目で設定した要素数分ループするようにしています。~
6行目でファイル名を取得してます。(拡張子を除く)~
8行目で拡張子を取得しています。~
10行目から14行目は、拡張子の有無により拡張子を追加する・しないの処理を行っています。
** サンプルコード実行結果 [#r28e56cb]
配列に指定した2つのフルパスファイル名からファイル名のみ取得しているのが確認できます。
C:\wsh>cscript /nologo basename.vbs
Target filename = c:\a\b\c\sakura.txt
GetBaseName = sakura
GetExtensionName = txt
FileName = sakura.txt
Target filename = c:\x\y\z\tubaki
GetBaseName = tubaki
GetExtensionName =
FileName = tubaki
#htmlinsertpcsp(win-btm.html,win-sp.html)