フォルダ内のフォルダ一覧を取得する
スポンサーリンク
VBScript でフォルダ内のフォルダオブジェクトの一覧を取得するには、 Folder オブジェクトの SubFolders プロパティを使用します。
以下のサンプルコードでは、 "c:\temp" 内にあるファイルのオブジェクト一覧を取得し、ファイル名を表示します。
VBScript(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Option Explicit Dim objFileSys Dim objFolder Dim objSubFolder 'ファイルシステムを扱うオブジェクトを作成 Set objFileSys = CreateObject("Scripting.FileSystemObject") 'c:\temp フォルダのオブジェクトを取得 Set objFolder = objFileSys.GetFolder("c:\temp") 'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得 For Each objSubFolder In objFolder.SubFolders '取得したフォルダの名前を表示 WScript.Echo objSubFolder.Name Next Set objSubFolder = Nothing Set objFileSys = Nothing |
上記はフォルダ名を 1 個ずつダイアログ表示します。もし取得したフォルダ名の一覧をファイルに出力したい場合、サンプルコードは以下の通りです。このサンプルコードを実行すると、実行した vbs ファイルと同じ場所に log.txt というファイルが作成され、フォルダ名の一覧が出力されます。
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 | Option Explicit Dim objFileSys Dim objFolder Dim objSubFolder Dim objOutputTextStream 'ファイルシステムを扱うオブジェクトを作成 Set objFileSys = CreateObject("Scripting.FileSystemObject") 'ログ出力用 TextStream オブジェクトを作成 '第2引数は 1 :読み取り、2 :上書き、3 :追記。 Set objOutputTextStream = objFileSys.OpenTextFile("log.txt", 2, True) 'c:\temp フォルダのオブジェクトを取得 Set objFolder = objFileSys.GetFolder("c:\temp") 'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得 For Each objSubFolder In objFolder.SubFolders 'ファイル名を取得し、ログファイルに出力 objOutputTextStream.WriteLine objSubFolder.Name Next 'TextStream は Close を忘れずに objOutputTextStream.Close Set objOutputTextStream = Nothing Set objSubFolder = Nothing Set objFileSys = Nothing |
スポンサーリンク