我一直在尝试编写一个基于 ruby 的文件重命名程序,作为自己的编程练习(我知道在 linux 下重命名,但我想学习 Ruby,而重命名在 Mac 中不可用)。
从下面的代码中,问题是该.include?
方法总是返回 false,即使我看到文件名包含这样的搜索模式。如果我注释掉include?
检查,gsub()
似乎根本不会生成新的文件名(即文件名保持不变)。那么有人可以看看我做错了什么吗?提前致谢!
这是预期的行为: 假设在当前文件夹中有三个文件:a1.jpg、a2.jpg 和 a3.jpg Ruby 脚本应该能够将其重命名为 b1.jpg、b2.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