分かりやすく、使いやすく。

ファイルの拡張子を調べて、拡張子ごとに処理を分ける方法

スポンサーリンク

VBScript ではファイルシステムオブジェクトの GetExtensionName メソッドを使用することで、ファイルの拡張子を取得することができます。このメソッドは引数にファイルのパスを渡すと拡張子を「txt」や「csv」などの文字列で返します。

尚、このメソッドは実際に存在しないファイルでもエラーにはならず拡張子を返します。その為、ファイルの存在チェックには使用できません。

  1. 拡張子を取得し表示するサンプルコード
  2. 拡張子ごとに処理を分岐するサンプルコード


拡張子を取得し表示するサンプルコード

拡張子を取得し表示する簡単なサンプルコードは次の通りです。

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  
スポンサーリンク