रोबोकॉपी / एक्सडी रिलेटिव पाथ्स के साथ काम नहीं करेगा


14

मैं एक रोबोकॉपी /MOVEकमांड चलाने की कोशिश कर रहा हूं, लेकिन /XDझंडे के साथ निर्दिष्ट उप-निर्देशिका के एक जोड़े को बाहर कर रहा हूं ।

robocopy ".\CurrentDir" ".\NewDir" /XD ".\CurrentDir\SubDir1" ".\CurrentDir\SubDir2" /E /MOVE

दुर्भाग्य से यह /XDविकल्प की अनदेखी करता है और सब कुछ स्थानांतरित करता है। अगर मैं हर चीज पर एक पूर्ण पथ का उपयोग करता हूं, तो यह ठीक काम करता है, लेकिन मुझे लचीला होने की आवश्यकता है। क्या रिश्तेदार रास्तों से काम करने का कोई तरीका है?


3
यह ध्यान दिया जाना चाहिए कि आप %CD%पर्यावरण चर का उपयोग करके एक से कम प्रयास के साथ सापेक्ष पथों को निरपेक्ष में बदल सकते हैं । उदाहरण: robocopy ".\CurrentDir" ".\NewDir" /XD "%CD%\CurrentDir\SubDir1" "%CD%\CurrentDir\SubDir2" /E /MOVE
gbr

gbr उत्तर सही उत्तर होना चाहिए। (दिए गए आप की जरूरत नहीं है ".." रिश्तेदार पथ में)
Sake

जवाबों:


15

निर्दिष्ट फ़ोल्डर उन फ़ोल्डरों /XDका संदर्भ दे रहे हैं (बहिष्कृत करने के लिए) जो स्रोत फ़ोल्डर में मौजूद हैं, इसलिए आप केवल उस फ़ोल्डर का नाम निर्दिष्ट करते हैं, जिसे आप बाहर करना चाहते हैं, बिना माता-पिता के संबंध को निर्दिष्ट किए।

अर्थात:

robocopy ".\CurrentDir" ".\NewDir" /XD "SubDir1" "SubDir2" /E /MOVE

6
दुर्भाग्य से यह स्तर 2 और उच्चतर / XD "SubDir1 / SubDir11" में उपनिर्देशिकाओं के लिए काम नहीं करता है।
सत्यसेकर

@truthseeker - आप सही कह रहे हैं। यह 1-स्तरीय फ़ोल्डर के लिए काम करता है, लेकिन कुछ भी कम नहीं है। उसके लिए, आपको निरपेक्ष स्रोत पथ (यानी। "/ xd% ~ dp0CurrentDir \ Folder1 \ Subfolder1") का उपयोग करना होगा, फिर वह "सबफ़ोल्डर 1" को ठीक से अनदेखा कर देगा, लेकिन "Folder1" को सिंक करें। आप सापेक्ष पथ का उपयोग नहीं कर सकते, और आप आप गंतव्य पथ का उपयोग नहीं कर सकते।
रॉकेटमोनकीज

0

निम्नलिखित मदद कर सकता है - यह सापेक्ष पथ के मुद्दे को सीधे संबोधित करता है - लेकिन कई अपवर्जित निर्देशिकाओं और उप निर्देशिकाओं के लिए अनुमति देता है।

यदि आप केवल शीर्ष स्तर के फ़ोल्डर बाहर कर रहे हैं - बस फ़ोल्डर नाम का उपयोग करें - उदाहरण एपीसी। हालाँकि अगर आप सब फोल्डर कर रहे हैं - आपको पूरे रास्ते की जरूरत है। पथ को स्रोत पथ से पूरी तरह से मेल खाना चाहिए। मैंने कई अलग-अलग तरीकों से इसका परीक्षण किया है और यह एकमात्र तरीका है जिससे मैं इसे काम में ले पाया। यह बैच / cmd फ़ाइल प्रारूप पथ या फ़ाइल नामों में रिक्त स्थान के लिए भी अनुमति देता है।

setlocal
set Source_path="\\usatlvmpdroadm1\C$\Installs"
set Destination_path="C:\Robo"
set Log_Path_and_File="C:\RoboCopy_Log_Files\01-Installs C drive to Robo C drive.txt"
set ED1="APC"
set ED2="\\usatlvmpdroadm1\C$\Installs\Dell\Dell MD3420 Firmware"

robocopy.exe %Source_path% %Destination_path% /COPYALL /ZB /MIR /MT:128 /DCOPY:T /XA:SH /XD %ED1% /XD %ED2% /XJ /XJD /R:2 /W:1 /NDL /NP /TEE /LOG:%Log_Path_and_File%

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