2012-03-01 10 views
15

के साथ एक निर्देशिका से दूसरी निर्देशिका में फ़ाइल की प्रतिलिपि बना रहा है अरे मैं एक फ़ोल्डर से दूसरे फ़ोल्डर में एकाधिक फ़ाइलों को स्थानांतरित करने की कोशिश कर रहा हूं। FileUtils लाइन में मैं गंतव्य फ़ोल्डर में सभी 4 वर्ण फ़ोल्डरों के माध्यम से खोजने की कोशिश कर रहा हूं और फिर फ़ाइल को फ़ाइल के समान आधार नाम वाले फ़ोल्डर में पेस्ट कर रहा हूं।रूबी

#!/usr/bin/env ruby 

require 'fileutils' 

my_dir = Dir["C:/Documents and Settings/user/Desktop/originalfiles/*.doc"] 
my_dir.each do |filename| 
    FileUtils.cp(filename, "C:/Documents and Settings/user/Desktop/destinationfolder/****/" + File.basename(filename, ".doc")) 
end 
+1

@ केएल -7, इसे लोगों के स्रोत कोड को संशोधित करने के लिए खराब रूप माना जाता है। कृपया समस्याओं की पहचान करने के लिए एक टिप्पणी का उपयोग करें, जैसे कि '#!' लाइन जो आपने बदल दी है। –

+4

@theTinMan, मुझे नहीं लगता कि उचित उपयोगकर्ता इंडेक्स के साथ नए उपयोगकर्ता की मदद करना एक बुरा विचार है। शेबांग के बारे में मैंने सोचा कि यह सिर्फ एक टाइपो था। –

उत्तर

31

ऐसा कुछ काम करना चाहिए।

my_dir = Dir["C:/Documents and Settings/user/Desktop/originalfiles/*.doc"] 
my_dir.each do |filename| 
    name = File.basename('filename', '.doc')[0,4] 
    dest_folder = "C:/Documents and Settings/user/Desktop/destinationfolder/#{name}/" 
    FileUtils.cp(filename, dest_folder) 
end 

आपको वास्तव में गंतव्य फ़ोल्डर निर्दिष्ट करना होगा, मुझे नहीं लगता कि आप वाइल्डकार्ड का उपयोग कर सकते हैं।

+0

आप का उपयोग नहीं करना चाहिए परिवर्तनीय नाम "dest_folder", मैंने इसे देखे बिना स्क्रिप्ट की प्रतिलिपि बनाई और यह काम नहीं किया क्योंकि मैंने सोचा था कि यह एक फ़ोल्डर होना चाहिए .. हालांकि मेरी गलती हो सकती है ..;) –

4

* एक वाइल्डकार्ड जिसका अर्थ है 'वर्णों की संख्या ", तो" **** "का अर्थ है, जो शायद नहीं है तुम क्या मतलब है" वर्णों की संख्या के किसी भी संख्या के किसी भी संख्या के किसी भी संख्या "है।

? "इस स्थिति में किसी भी चरित्र" के लिए उचित प्रतीक है, इसलिए "????" का अर्थ है "केवल चार वर्णों की एक स्ट्रिंग"।

+0

शैल पैटर्न मिलान में, वास्तव में '****' का अर्थ है किसी भी पात्र के किसी भी संख्या के बाद किसी भी पात्र के किसी भी संख्या के बाद, किसी भी पात्र के किसी भी nymber के बाद, किसी भी अक्षर के किसी भी nymber के बाद – akostadinov