久しぶりのRubyネタです。
ts ファイルのチャネルを自動的に読み取って mp4に変換するで便利にtsファイルを変換しているのですが、たまに問題がおきます。
それはファイル名にスペースや”&”(アンパサンド)があると「ファイルが無い」と怒られてしまうことです。
いつも手作業でファイル名を変更するのも面倒なので、簡単なスクリプトで変換することにしました。
あまり芸はなくて、gsubで変換するだけです。アンパサンドはutf-8のキャラクター・コードをそのまま指定して全角のアンパサンドに変換しています。
#!/usr/bin/env ruby # coding: utf-8 require 'fileutils' ARGV.each{|filename| filename_new = filename.encode("utf-8").gsub(/\s/,"_").gsub(/\u0026/, "&") printf("%s is renamed to %s\n", filename, filename_new) File.rename(filename, filename_new) }
gsub(/\s/, "_")
の部分のスペースは複数を一気に変換するなどお好きにすれば良いでしょう。
実行形式にしてマウス右クリックの「送る」にショートカットを登録すると快適
ぼくは主にWindowsで使っています。この場合はocraで実行ファイルにしておくと楽です。このとき、ショートカットをマウス右クリックの「送る」に登録しておくと さらに快適です。
「送る」の登録先は
c:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\SendTo
です。上記USERNAMEは自分のユーザーネームに置き換えて読んで下さい。