いろいろいじりたいのにいちいちソフトを作っていては時間が足りないので、アドエスにMortScriptを入れてみました。
うーん、なんかVBとPerlを混ぜ合わせたような言語ですね、If文のあとに括弧があったり、文字列演算子がPerlと同じだったりしますが、ブロックの終わりはEnd〜だったり、行末のセミコロンがいらなかったり、何より配列の添え字が1ベースだったり(好きにできるようですが、とりあえずChoice関数がそういう実装だったので)、なんだかちょっと違和感。うーん、アドエスをいじれる命令セットがあるのは買いですが、個人的にはあまり好きになれそうにないな・・・。
とりあえず、MicroSD内のasxファイル(Windows Media PlayerとのMTPで作成されたもの)のファイル名だけを抜き出してm3uファイルに変換するスクリプトを作ってみました。できたm3uはGSPlayerなどで使えます。
ForEach file in files("\microSD\Playlists\*.asx") text = "" ForEach line in Split(ReadFile(file), "^NL^", TRUE) name = Part(line, """", 2) If(name ne "") text = text & name & "^NL^" EndIf EndForEach WriteFile(FilePath(file) & "\" & FileBase(file) & ".m3u", text) EndForEach
うちではPocketの手を使ってMicroSDのドライブ名を変えているので、適宜編集を。
まあ、汎用性を考えるなら最初に既存のm3uを全て削除するなり、気を利かせてもよかったかも。
で、下のスクリプトで再生するファイルを選択。どこかに似たのがあったような気がしますが、忘れたので。
i = 1 ForEach file in files("\microSD\Playlists\*.m3u") files[i] = file filenames[i] = FileBase(file) i = i + 1 EndForEach fileindx = Choice( "選択", "再生するm3uを選択してください", 0, 0, filenames) If(files[fileindx] ne "") Run("\Program Files\GreenSoftware\GSPlayer2.exe", files[fileindx]) EndIf
Choice関数のデフォルト値はどうも動いていない(何を指定してもキャンセル時0が返ってくる?)らしいので注意。
Choiceのデフォルト値はキャンセル時の返却値ではなく、デフォルトインデックスなので注意