VBScript のワイルドカード(正規表現)を使って、複数ファイルの名称を変更する方法を書いていきます。
コード例
今回のコード例ですが、フォルダ内にあるWAVファイルの名前を一括で変更するコードになります。
rename-wav.vbs
Option Explicit ' ファイルシステムオブジェクトを取得 Dim fso: Set fso = WScript.CreateObject( _ "Scripting.FileSystemObject" _ ) ' カレントディレクトリの絶対パスを取得 Dim currentDir: currentDir = fso.GetAbsolutePathName(".") ' カレントディレクトリの名前を取得 Dim dirName: dirName = fso.GetFileName(currentDir) ' WAVファイルを全て取得するための正規表現 Dim regex: Set regex = New RegExp regex.Pattern = ".*\.wav" ' カレントのWAVファイルを全て名前変更 Dim file For Each file in fso.GetFolder(currentDir).Files If regex.Test(file.Name) Then file.Name = dirName + "_" + file.Name End If Next
拡張子が「*.wav」のファイルに対して、プレフィックス「フォルダ名_」を付けるプログラムになります。
実行例
フォルダ「S1」にWAVとVBSを置いて、VBSをダブルクリックで実行します。
実行後は、以下の通りファイル名が変更されています。
変更前 S1\001.wav S1\002.wav 変更後 S1\S1_001.wav S1\S1_002.wav