ファイル名から半角スペースと”&”を削除するスクリプト

久しぶりの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は自分のユーザーネームに置き換えて読んで下さい。