Ho cercato di elaborare un programma di ridenominazione file basato su ruby, come esercizio di programmazione per me stesso (sono consapevole di rinominare sotto linux, ma voglio imparare Ruby e rinominare è non disponibile in Mac).Come rinominare i file in ruby
Dal codice riportato di seguito, il problema è che il metodo .include?
restituisce sempre false anche se vedo che il nome del file contiene tale modello di ricerca. Se commento il controllo include?
, il numero gsub()
non sembra generare un nuovo nome di file (il nome del file rimane invariato). Quindi qualcuno può dare un'occhiata per vedere cosa ho sbagliato? Grazie molte in anticipo!
Qui è il comportamento previsto: Supponendo che nella cartella attuale ci sono tre file: a1.jpg a2.jpg, e a3.jpg Lo script di Ruby dovrebbe essere in grado di rinominarlo in 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
Cosa ingresso State fornendo per i tre 'istruzioni gets'? – bta
Credo seriamente che il comando "rename' possa fare meglio in questo ... – texasbruce
@texasbruce, non esiste un comando di rinomina in mac. forse i Macport hanno qualcosa, ma hanno trovato solo un sacco di script perl. Ma come ho suggerito prima, è un esercizio rubino per me – Antony