home > OLE オートメーション > iTunes >

ForNext

Only Do What Only You Can Do

フォルダ配下のファイルを一括インポート

VBScript

JScript

Perl

PHP

Python

Ruby

PowerShell

更新日 : 2012.08.11
$global:it = New-Object -ComObject iTunes.Application

$global:artist_name = ""
$global:album_name  = ""
$global:truck_name  = ""
$global:truck_no    = 0

#指定したフォルダ配下の曲を一括インポート
# \アーティスト名\アルバム名\曲名.wav って感じで整理している
ls -rec | select Fullname, Extension, Attributes | where {$_.Attributes -ne 'Directory'} |sort Fullname | foreach {ImportWav($_)}

$global:it.Quit

function ImportWav($arg) 
{ 
    $args = $arg.fullName.split("\")
    $artist_offset = $args.length - 3
    $album_offset  = $args.length - 2

    if (($global:artist_name -ne $args[$artist_offset]) -or ($global:album_name -ne $args[$album_offset]))
    {
        #アーティスト名かアルバム名が変わった
        $global:truck_no = 1
    }
    else
    {
        #同一のアーティスト・アルバム
        $global:truck_no++
    }
    #プレイリスト名は "#アーティスト名 - アルバム名"
    $playlist_name = $args[$artist_offset], " - ", $args[$album_offset]
    $playList      = $global:it.LibrarySource.Playlists.ItemByName($playlist_name)
    if ($playList -eq $null)
    {
        #未登録なら追加
        $playList = $global:it.CreatePlayList($playlist_name)
    }
    
    $global:artist_name = $args[$artist_offset]
    $global:album_name  = $args[$album_offset]
    $global:truck_name  = $arg.baseName
    
    if ($arg.Extension -eq '.wav')
    {
        #wave形式なら変換
        $sts = $global:it.ConvertFile($arg.fullName)
    }
    elseif ($arg.Extension -eq '.mp3')
    {
        #mp3形式なら単に追加
        $sts = $playList.AddFile($arg.fullName)
    }
    while($sts.InProgress)
    {
        Start-Sleep 1
    }
    #タグの編集
    foreach ($track in $sts.Tracks)
    {
        $track.Artist       = $global:artist_name
        $track.Album        = $global:album_name
        $track.TrackNumber  = $global:truck_no
        $track.Name         = $global:truck_name
        if ($arg.Extension -eq '.wav')
        {
            #wave形式なら追加
            $playList.AddTrack($track)
        }
    }
}

Scala

F#

C

C++

C++Builder

VC++

C#

Java

Objective-C

D

VB

VB.NET

Delphi

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system