私は自分自身のプログラミングの練習として、ルビーに基づいたファイルリネームプログラムを試しています(私はlinuxの名前を変更していますが、Rubyを学びたいと思います。 Macでは使用できません)。ルビーのファイルの名前を変更する方法
以下のコードから、ファイル名にそのような検索パターンが含まれていても、.include?
メソッドは常にfalseを返すという問題があります。 include?
チェックをコメントアウトすると、gsub()
は新しいファイル名を生成していないようです(つまり、ファイル名は同じです)。誰かが私が間違ったことを見てみることができますか?事前に束をありがとう!ここで
が期待される動作です:Rubyスクリプトは、b1.jpgにB2を、それを名前を変更することができるはずA1.JPG、a2.jpg、およびa3.jpg : は、現在のフォルダに三つのファイルがあると仮定すると。 JPG、b3.jpg
#!/Users/Antony/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
puts "Enter the file search query"
searchPattern = gets
puts "Enter the target to replace"
target = gets
puts "Enter the new target name"
newTarget = gets
Dir.glob("./*").sort.each do |entry|
origin = File.basename(entry, File.extname(entry))
if origin.include?(searchPattern)
newEntry = origin.gsub(target, newTarget)
File.rename(origin, newEntry)
puts "Rename from " + origin + " to " + newEntry
end
end
次の3つの 'gets'プロンプトにどのような入力を提供していますか? – bta
私は真剣に 'rename'コマンドがもっとうまくいくと思っています... – texasbruce
@texasbruce、macにはrenameコマンドがありません。多分macportsは何かを持っていますが、perlスクリプトの束しか見つけませんでした。しかし、私が以前に示唆したように、それは私にとってはルビーのエクササイズです – Antony