वाइल्डकार्ड डायरेक्टरी एक्सक्लूसिव विद रॉबोकॉपी - अजीब मामला


17

मुझे किसी भी फ़ाइल को बाहर करने के लिए रोबोकॉपी प्राप्त करने की आवश्यकता है, जिसके पथ में एक विशेष नाम के साथ एक निर्देशिका है। उदाहरण के लिए, "बार":

c:\foo\bar\a.txt
c:\bar\c.txt
d:\baz\bar\flub\d.txt

बाहर रखा जाना चाहिए, लेकिन नहीं

c:\foo\barf\b.txt

यहाँ मैं कोशिश की चीजें हैं - जिनमें से प्रत्येक को robocopy द्वारा अस्वीकार कर दिया गया था:

/XD \bar\
/XD *\bar\*
/XD *^\bar^\*

कोई विचार?

जवाबों:


19

निर्देशिका के नाम पर / XD मिलान करता है - पूर्ण पथ नहीं। तो आप वास्तव में backslashes मिलान के बारे में चिंता करने की ज़रूरत नहीं है।

इसलिए निर्देशिकाओं (पथ में कहीं भी) को "बार" के रूप में बाहर करने के लिए, एक सरल / एक्सडी बार काम करेगा। यदि आप "बारफ" को बाहर करना चाहते हैं, तो भी, आप / XD बार * का उपयोग कर सकते हैं।

कभी-कभी जवाब आपके हिसाब से सरल होता है।


4

विफलता का एक हिस्सा रोबोकॉपी में एक ट्रेलिंग \ का उपयोग कर रहा है जब एक निर्देशिका का उल्लेख करते हुए - जो कि एक नो-नो है - जैसा कि रोबोकॉपी एक एस्केप चरित्र के रूप में व्याख्या करने की कोशिश करता है। लगभग सभी लोग एक तरह से या दूसरे से रोबोकॉपी के साथ यह गलती करते हैं। इसे ध्यान में रखते हुए, यह उदाहरण काम करेगा:

/XD "\Bar"

यदि आप अधिक विशिष्ट फ़ोल्डर संरचना से मेल खाना चाहते हैं (ताकि अन्य सबफ़ोल्डर से मेल न खाएं, तो आप अधिक विवरण जोड़ सकते हैं, जैसे:

/XD "\Foo\Bar"
/XD "C:\Foo\Bar"

2
वाइल्डकार्ड बहिष्करण काम नहीं करते हैं। यदि आप कोशिश करते हैं तो रोबोकॉपी एक त्रुटि फेंक देगी। क्या आपने अपने उदाहरणों का परीक्षण किया?
user1751825

मैंने किया और इसका उपयोग किया, इस तथ्य को छोड़कर कि मैंने गलती से अपने उदाहरण में एक तारांकन जोड़ा, जिसके लिए मुझे लगता है कि मैं / XF स्विच के साथ वाक्यविन्यास को भ्रमित कर रहा हूं। मैंने अपनी प्रतिक्रिया सही कर दी है। धन्यवाद।
मिशैल एस्पिनोला

1

यदि आपकी अलग-अलग निर्देशिका फ़िल्टर करने की कोशिश कर रही है, तो परिवर्तनों के बीच अपने गंतव्य फ़ोल्डर को साफ़ करना सुनिश्चित करें!

मेरे लिए एक गेटा यह था कि मुझे महसूस नहीं हुआ कि डेस्टिनेशन डायरेक्टरी स्विच डेस्टिनेशन फोल्डर पर भी लागू होता है। मैंने रॉबोकॉपी के साथ /MIRस्रोत निर्देशिका को बदल दिया था, और मेरी गंतव्य निर्देशिका अपेक्षित रूप से अपडेट हो गई थी। फिर मैंने देखा कि मेरे पास संग्रह फ़ोल्डर थे जो मैं नहीं चाहता था, इसलिए मैंने जोड़ा /XD archive, लेकिन मेरे गंतव्य फ़ोल्डर में अभी भी संग्रह फ़ोल्डर थे!

वाइल्डकार्ड के साथ खिलवाड़ करने और \एस को बाहर करने के बाद , मैंने आखिरकार गंतव्य फ़ोल्डर को हटाने और स्क्रिप्ट को फिर से चलाने की कोशिश की - इस बार इसमें संग्रह फ़ोल्डर नहीं थे! यहाँ वह कमांड है जो मैं चला रहा था, निर्दोषों की सुरक्षा के लिए निर्देशिका के नाम बदल दिए गए हैं:

robocopy \\SERVER\Some\Folder\Path .\Some\Relative\Path /Copy:DAT /Mir /R:0 /W:1 /XD archive*

0

मुझे खेद है, लेकिन https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy पर प्रलेखन के अनुसार :

/ xf <FileName> [...] निर्दिष्ट नामों या रास्तों से मेल खाने वाली फ़ाइलों को छोड़ दें। ध्यान दें कि FileName में वाइल्डकार्ड वर्ण (*?) शामिल हो सकते हैं।
/ xd <Directory> [...] उन निर्देशिकाओं को छोड़ देता है जो निर्दिष्ट नामों और रास्तों से मेल खाती हैं।

तो इसका विशेष रूप से मतलब है कि वाइल्डकार्ड / xf ध्वज में उपयोग किया जा सकता है लेकिन / xd ध्वज में नहीं।

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