Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

VBScript ワイルドカードで複数ファイルの名前変更(VBS)

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