MP3ファイルのファイル名をトラック番号付きのファイル名に変更するスクリプトを作ってみました。
Rename-Mp3File.ps1
param($targetDir)
$sh = New-Object -ComObject Shell.Application
$music = $targetDir
$folder = $sh.Namespace($music)
$items = Get-ChildItem -Path $music -Include *.mp3 -Name
foreach($f in $items)
{
$fi = $folder.ParseName($f)
#トラック番号取得
$num = $folder.GetDetailsOf($fi,26).PadLeft(2,"0")
$oldFile = Join-Path $music $f
$newFile = Join-Path $music ($num + ' ' + $f)
#ファイル名変更
Rename-Item $oldFile $newFile
}
Get-ChildItem -Path $music
実行例
たとえばこのようなMP3ファイルが入っているフォルダがあるとします。
引数にこのフォルダを指定し、スクリプトを実行します。
PS C:\work\PowerShell> .\Rename-Mp3File.ps1 C:\work\mp3
ディレクトリ: C:\work\mp3
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2011/04/07 21:32 2215447 01 Black Star.mp3
-a---- 2011/04/07 21:33 5350940 02 What The Hell.mp3
-a---- 2011/04/07 21:33 5009442 03 Push.mp3
-a---- 2011/04/07 21:34 5748950 04 Wish You Were Here.mp3
-a---- 2011/04/07 21:35 5255534 05 Smile.mp3
-a---- 2011/04/07 21:35 5378378 06 Stop Standing There.mp3
-a---- 2011/04/07 21:36 6495746 07 I Love You.mp3
-a---- 2011/04/07 21:36 6019979 08 Everybody Hurts.mp3
-a---- 2011/04/07 21:37 6512276 09 Not Enough.mp3
-a---- 2011/04/07 21:37 5618114 10 4 Real.mp3
-a---- 2011/04/07 21:38 5964249 11 Darlin.mp3
-a---- 2011/04/07 21:39 7133430 12 Alice (Extended Version).mp3
-a---- 2011/04/07 21:39 5588210 13 Remember When.mp3
-a---- 2011/04/07 21:40 6297071 14 Goodbye.mp3
-a---- 2011/04/07 21:40 5792376 15 What The Hell (Acoustic).mp3
-a---- 2011/04/07 21:41 4538096 16 Push (Acoustic).mp3
-a---- 2011/04/07 21:41 5675687 17 Wish You Were Here (Acoustic).mp3
-a---- 2011/04/07 21:42 3499686 18 Knockin' On Heaven's Door.mp3
-a---- 2011/04/07 21:42 4592732 19 Bad Reputation.mp3
ファイル名の先頭にトラック番号が付与されました。

スポンサーリンク