रोबोकॉपी ट्रांसफर फाइल और फोल्डर नहीं


99

मैं robocopyएक फाइल को एक स्थान से दूसरे स्थान पर स्थानांतरित करने के लिए उपयोग करने की कोशिश कर रहा हूं, लेकिन robocopyलगता है कि मैं हमेशा एक फ़ोल्डर निर्दिष्ट कर रहा हूं। यहाँ एक उदाहरण है:

robocopy "c:\transfer_this.txt" "z:\transferred.txt"

लेकिन मुझे इसके बजाय यह त्रुटि मिली:

2009/08/11 15:21:57 ERROR 123 (0x0000007B) Accessing Source Directory c:\transfer_this.txt\

( \के अंत में ध्यान दें transfer_this.txt)

लेकिन अगर मैं इसे एक संपूर्ण फ़ोल्डर की तरह मानता हूं:

robocopy "c:\folder" "z:\folder"

यह काम करता है लेकिन फिर मुझे फ़ोल्डर में सब कुछ स्थानांतरित करना होगा।

मैं केवल एक फ़ाइल के साथ कैसे स्थानांतरित कर सकता हूं robocopy?


def copyFile(fromLocation,toLocation,big=False): print("copy file from " + fromLocation + " to " + toLocation) if big: iFind=fromLocation.rfind('\\') fromLocation1 = fromLocation[: (iFind+1)] fileName=fromLocation[iFind+1 :] toLocation1 = toLocation[:(toLocation.rfind('\\')+1)] strcmd="robocopy "+fromLocation1+" "+toLocation1+" "+fileName print(strcmd) os.system(strcmd) else: shutil.copy2(fromLocation,toLocation)
Gank

जवाबों:


129

देख: Robocopy /?

उपयोग: ROBOCOPY स्रोत गंतव्य [फ़ाइल [फ़ाइल] ...] [विकल्प]

robocopy c:\folder d:\folder transfer_this.txt

fwiw, कम से कम win2003 पर: निर्देशिका निर्देशिका को उद्धृत करते हुए यह हिचकी बनाता है।
संस्मिथ १५'१३ को १

1
@samsmith मैंने इसे हिचकी देखा है जब आपके पास बंद होने से पहले एक है (यानी: ROBOCOPY "c: \ folder1 \" c: \ folder2 फ़ाइल काम नहीं करेगी लेकिन: ROBOCOPY "c:" folder1 "c: \ folder2 फ़ाइल करता है। मुझे उम्मीद है कि यह एक भागने वाली चीज है
माइक गोअटली

1
@ मायकेगेटली उत्कृष्ट बिंदु। रोबोकॉपी को ट्रेलिंग \ _ पसंद नहीं है। यह चाहता है कि आप निर्देशिकाओं को "नाम" के रूप में नाम दें और किसी भी तरह से इसका मतलब नहीं निकालना चाहते हैं कि यह निर्देशिका के अलावा कुछ भी स्वीकार नहीं करता है।
संस्मिथ

19

रोबोकॉपी पर विकिपीडिया लेख के अनुसार :

फोल्डर कॉपियर, न कि कापियर

रोबोकॉपी सिंटैक्स मानक प्रतिलिपि आदेशों से स्पष्ट रूप से भिन्न है, क्योंकि यह केवल फ़ोल्डर नामों को अपने स्रोत और गंतव्य तर्क के रूप में स्वीकार करता है। फ़ाइल नाम और वाइल्ड-कार्ड वर्ण (जैसे *.*) मान्य स्रोत या गंतव्य तर्क नहीं हैं। वैकल्पिक फिलस्पेक फ़िल्टरिंग तर्क का उपयोग करके फ़ाइलों को चुना या बाहर रखा जा सकता है। Filespecs केवल उन फ़ाइलनामों को संदर्भित कर सकता है जो प्रतिलिपि के लिए पहले से चयनित फ़ोल्डर के सापेक्ष हैं। पूर्ण-योग्य पथ नाम समर्थित नहीं हैं।

उदाहरण के लिए, फ़ाइल foo.txtको निर्देशिका से कॉपी c:\barकरने के लिए c:\baz, निम्नलिखित सिंटैक्स का उपयोग किया जा सकता है:

robocopy c:\bar c:\baz foo.txt


एक बात मैंने गौर की। यदि C: \ bar में कोई फोल्डर है और विकल्प / e जोड़ा गया है। यह उन सभी फ़ोल्डरों को फिर से बनाएगा जिनमें कोई फाइल नहीं है। मुझे लगता है कि चूंकि foo.txt एक फिल्टर की तरह काम करता है और उन फ़ोल्डरों में कोई भी फाइल नहीं ढूंढ पाता है और आपके खाली फोल्डर को रख सकता है। यही कारण है कि खाली फ़ोल्डर बनाए जाते हैं।
डॉनी वी

1

गंतव्य से पहले स्थान सम्मिलित करने का प्रयास करें, जैसे:

robocopy "c:\transfer_this.txt" "z: \this.txt" 

गंतव्य "फ़ोल्डर" के बाद अंतरिक्ष को नोटिस करें z:


3
यह मेरे काम नहीं आया, मुझे @ KPWINC के निर्देशों का पालन करना पड़ा और स्रोत पथ से फ़ाइल नाम छोड़ना पड़ा।
प्रभावशाली

3
यह एक ट्रोल जवाब है? कोशिश की और काम नहीं किया (न ही ऐसा लगता है कि यह काम किया होगा)।
पचेरियर

-4

robocopy Q: \ F: \ Dopbox "Microsoft Office.zip" / MT: 128


रोबोकॉपी स्रोत गंतव्य फ़ाइल नाम
डेल

6
स्पष्टीकरण के बिना एक कमांड उपयोगी उत्तर नहीं है।
कैस्परल्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.