音楽シャッフルスクリプト
サンコネクション MUSIC+を使いこなすため
音楽ファイルをランダムにシャッフルするrubyスクリプトを書いてみた。
誰かの役に立つかもしれないので、置いておきます。
適当です。免責とさせていただきます。
ご自分の責任で、ご自由にご使用ください。
require 'fileutils' # ここに、音楽ファイルのあるディレクトリパスを music_dir = 'C:/MUSIC' # ここに、シャッフル後の音楽ファイルを置くディレクトリパスを dest_dir = 'C:/TRANSPORT' # 音楽ファイルのパスを全取得(このソースではwmaオンリー) files = Array.new Dir.glob(music_dir + "/**/*.wma").each do |fn| files << {:name => fn, :size => File.size(fn)} end # シャッフル files.sort! { rand(0) <=> rand(0) } # コピーするファイルを決める size_sum = 0 copy_files = Array.new files.each do |f| # だいたい512MBまで if size_sum > 512 * 1024 * 1024 break end copy_files << f size_sum += f[:size] end print "#{copy_files.size}個のファイルをコピーします。\n" $stdout.flush # ファイルをコピーする copy_files.each_with_index do |f, i| print "#{i}/#{copy_files.size} #{File.basename(f[:name])}" $stdout.flush FileUtils.copy_file(f[:name], dest_dir + ("/%03d " % i) + File.basename(f[:name])) print " done.\n" end