Kendim için bir programlama alıştırması olarak ruby temelli bir dosya yeniden adlandırma programı çalıştırmaya çalışıyorum (linux altında yeniden adlandırıldığının farkındayım, ancak Ruby'yi öğrenmek istiyorum ve yeniden adlandırmak Mac'te mevcut değildir).ruby dosyalarının nasıl yeniden adlandırılır?
Aşağıdaki koddan, dosya adının bu tür arama modelini görmesine rağmen, .include?
yönteminin her zaman false döndürmesidir. include?
işaretini açıklarsam, gsub()
'un yeni bir dosya adı oluşturduğu görünmez (yani dosya adı aynı kalır). Birisi lütfen yanlış yaptığımı görmek için bir göz atabilir mi? Şimdiden bir demet teşekkürler!
İşte beklenen davranıştır: Geçerli klasördeki üç dosya olduğunu varsayarsak: Yakut komut, b1.jpg için b2 yeniden adlandırmak gerekir a1.jpg, a2.jpg ve 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
üç 'gets' istemleri için ne girdi sağlıyoruz ... Auto1, car2 dönüştürülen/vardı? – bta
Cidden 'rename' komutunun bunu daha iyi yapabileceğini düşünüyorum ... – texasbruce
@texasbruce, Mac'te yeniden adlandır komutu yok. Belki macports bir şey var, ama sadece bir sürü perl betiği bulundu. Ama daha önce önerdiğim gibi, bu benim için – Antony