バックアップファイルのリネームスクリプトを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 --------------