ファイルの拡張子を調べて、拡張子ごとに処理を分ける方法
スポンサーリンク
VBScript ではファイルシステムオブジェクトの GetExtensionName メソッドを使用することで、ファイルの拡張子を取得することができます。このメソッドは引数にファイルのパスを渡すと拡張子を「txt」や「csv」などの文字列で返します。
尚、このメソッドは実際に存在しないファイルでもエラーにはならず拡張子を返します。その為、ファイルの存在チェックには使用できません。
拡張子を取得し表示するサンプルコード
拡張子を取得し表示する簡単なサンプルコードは次の通りです。
VBScript(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Option Explicit Dim objFileSys Dim strExtension 'ファイルシステムを扱うオブジェクトを作成 Set objFileSys = CreateObject("Scripting.FileSystemObject") '絶対パスで指定可能 strExtension = objFileSys.GetExtensionName("c:\temp\test.txt") '「txt」と表示される。 Wscript.Echo strExtension '相対パスでも指定可能 strExtension = objFileSys.GetExtensionName("test.txt") '「txt」と表示される。 Wscript.Echo strExtension Set objFileSys = Nothing |
拡張子ごとに処理を分岐するサンプルコード
次のサンプルコードでは、 c:\temp 内のすべてのファイルの拡張子を確認し、拡張子に応じた処理を実行するよう If 文で分岐しています。
VBScript(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | Option Explicit Dim objFileSys Dim objFolder Dim objFile Dim strExtension 'ファイルシステムを扱うオブジェクトを作成 Set objFileSys = CreateObject("Scripting.FileSystemObject") 'c:\temp フォルダのオブジェクトを取得 Set objFolder = objFileSys.GetFolder("c:\temp") 'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得 For Each objFile In objFolder.Files 'ファイルの拡張子を取得 strExtension = objFileSys.GetExtensionName(objFile.Name) 'If 文を使って拡張子毎の処理を記述する。 If strExtension = "txt" Then WScript.Echo objFile.Name & "はテキストファイルです。" Elseif strExtension = "csv" Then WScript.Echo objFile.Name & "はCSVファイルです。" Elseif strExtension = "jpg" Then WScript.Echo objFile.Name & "は画像ファイルです。" Else WScript.Echo objFile.Name & "はその他のファイルです。" End If Next Set objFolder = Nothing Set objFileSys = Nothing |
スポンサーリンク