バックアップファイルのリネームスクリプトをRubyで書く

一つ前の記事で作ったC#のツールをRubyに移植したもの。
ファイル名に「 - コピー」が含まれているファイルをリネームし、ファイルの更新日付を末尾に付加する。
Win7形式(末尾に「コピー」)、WinXP形式(先頭に「コピー」)の両方に対応
・改名後のファイル名と同一名のファイルが既に存在する場合は処理しません
・パスの通ったフォルダに置いておけば便利

copyRename.rb
--------------
#! ruby -Ks #文字コードをShift-JISに設定
Dir.glob("*") do |$f|
  path=Dir::pwd + "\\" + $f
  $f = File.basename($f, File.extname(path)) 
  $new = $f.gsub(/ - コピー.*$|^コピー (|\([0-9]+\) )/,"")
  next if $f==$new
  $new << "_"
  $new << File.stat(path).mtime.strftime("%Y%m%d%H%M%S")
  $new << File.extname(path)

  puts "   " + $f
  $success=false
  if File.exist?($new)
    puts "   同一ファイルが既に存在します。"
  else
    begin
      File.rename(path, $new)
      $success=true
    rescue
      puts $!, "\n"
    end
  end
  puts ($success ? '' : '×') + ">" + $new
end
--------------

copyRename.bat
--------------
ruby copyRename.rb
pause
--------------