【PowerShell】音声ファイル(mp3など)の名前をタイトル属性と同名に一発変換!【コマンドレット】
はじめに
どうも!そろそろ学生生活を終えようとしているロピタルです( 一一)
今回は,Powershellのコマンドレットとして音声ファイルの名前をタイトル属性を基に変更するコマンドレットを作成しました.その中で詰まった部分があったので簡単に書きますね!!
コマンドのコードはここにあるので,ぜひ使ってください('ω')
目次
経緯
音楽をスマホなので聴く際に,プレイヤによってはファイル名で表示されたりタイトル属性で表示されたりしてややこしかったりしますよね??
また,ファイル操作するときなんかに,ファイル名が曲名と異なると,どれがどの曲のファイルか分からなくなったりして面倒なんです(-_-;)
そこで,音声ファイルの「タイトル属性」をそのままファイル名に変換したいと思いました.
が...
ファイル一つ一つやっていくのは面倒ということで,コマンドレットを作成することにしました!!!
詰まった点
作成の際に詰まった点について書きます!
ファイル名の拡張子の取得
プログラムではまず,コマンドの実行ディレクトリ直下にある音声ファイル名をリストとして取得します.
$items = Get-ChildItem -Path ./ -Include *.mp3,*.flac,*.m4a -Name
これで,items
という変数に,mp3
,flac
,m4a
ファイルの名前がリストとして格納されます.
その後,ファイル名を変更して保存するのですが,ファイル名の拡張子は元の拡張子と同じ必要がありますよね???
そこで,元ファイルの拡張子がmp3
なのかflac
なのかm4a
なのか判断する必要があるのですが,それが難しい(-_-;)
Get-Childitem
によって得られるデータには本来,拡張子を保存しているExtension
という変数が含まれるのですが,Name
オプションでファイル名で条件指定して得られたデータではExtension
が使えないんです( 一一)
拡張子を取得するためのコードを書こうかと思ったんですがめちゃくちゃ簡単な解決方法がありました(笑)
ファイルの再取得
ファイル名が分かっているので,Get-Childitem
によりファイルを再取得し,Extension
属性で拡張子を確認すればOKでした.Powershell
をよく使う人にとっては当然の解決策なのかな?
まとめ
今回は,音声ファイルの名前をタイトル属性と同名に変換するコマンドレットを作成しました!!
たいしたことない記事ですみません(笑)もうちょっとコーディング頑張りますノシ