VBScript(VBスクリプト)でDIRするには?
たとえば、フォルダ(ディレクトリ)内のすべてのファイルに対して処理をしたい場合が、結構あります。
VB6では、DIR関数を使って比較的簡単に実装できますが、VBSでは、DIR関数そのものがありません。
したがって、VBSでは、正規表現オブジェクトとFilesコレクションを使います。
留意点として、VB6とVBSはカレントディレクトリが違いますので、これに関しては、以下のリンク先を参照してください。
また、正規表現オブジェクトに関しては、以下のリンク先を参照してください。
VB6
Option Explicit Dim vntP As Variant vntP = Dir("qa*htm", vbNormal) Do While vntP <> "" 'フォルダ内の各ファイルに対しての処理を記述する。 vntP = Dir Loop
VBS
Option Explicit Dim fs, f, f1, fc, RE, objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") Set RE = CreateObject("VBScript.RegExp") RE.Pattern ="qa.*htm" Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(objWshShell.CurrentDirectory) Set fc = f.Files For Each f1 in fc If RE.Test(f1.name) then 'フォルダ内の各ファイルに対しての処理を記述する。 End If Next Set fs = Nothing Set RE = Nothing