एक फ़ोल्डर से दूसरे फ़ोल्डर में फ़ाइलों को कॉपी करने के लिए बैच फ़ाइल


235

मेरे पास एक नेटवर्क पर एक भंडारण फ़ोल्डर है जिसमें सभी उपयोगकर्ता अपने सक्रिय डेटा को एक सर्वर पर संग्रहीत करेंगे। अब उस सर्वर को जगह की समस्या के कारण एक नया द्वारा प्रतिस्थापित किया जा रहा है इसलिए मुझे पुराने सर्वर स्टोरेज फ़ोल्डर से नए सर्वर स्टोरेज फ़ोल्डर में उप फ़ोल्डर फ़ाइलों की प्रतिलिपि बनाने की आवश्यकता है। मेरे पास पूर्व से नीचे है:

\ Oldeserver \ storage \ data और फ़ाइलों से \ New server \ storage \ data और फ़ाइलों तक।


3
मुझे लगता है कि आप एक Windows वातावरण के बारे में बात कर रहे हैं?
एलन प्लम


4
@ HugoM.Zuleta, मुझे .bat फ़ाइलों के बारे में पता है। लेकिन "बैच फ़ाइल" आवश्यक रूप से विंडोज वातावरण की गारंटी नहीं है। प्री-डेट्स विंडोज का उपयोग (जैसा कि .bat फाइलें) और मैंने देखा है कि नौसिखियों ने इस शब्द का इस्तेमाल "निक्स वातावरण" में करने के लिए किया है।
एलन प्लम

1
@pluma मैं सहमत हूं, और यह ज्यादातर इसलिए है क्योंकि वे अपने ओएस के स्क्रिप्टिंग टूल द्वारा किए गए बैच संचालन को संदर्भित करते हैं।
ह्यूगो एम। ज़ुलेटा

जवाबों:


441

xcopy.exe निश्चित रूप से आपका मित्र है। यह विंडोज में बनाया गया है, इसलिए इसकी लागत कुछ भी नहीं है।

केवल xcopy /s c:\source d:\target

आप शायद कुछ चीजों को ट्विस्ट करना चाहते हैं; हमारे द्वारा जोड़े जाने वाले कुछ विकल्पों में ये शामिल हैं:

  • /s/e - खाली निर्देशिकाओं की नकल सहित पुनरावर्ती प्रति।
  • /v- मूल के खिलाफ प्रतिलिपि को सत्यापित करने के लिए इसे जोड़ें। धीमी, लेकिन पागल के लिए।
  • /h - कॉपी सिस्टम और छिपी हुई फाइलें।
  • /k- फाइलों के साथ-साथ रीड-ओनली एट्रिब्यूट्स कॉपी करें। अन्यथा, सभी फाइलें पढ़ने-लिखने योग्य हो जाती हैं।
  • /x- यदि आप अनुमति के बारे में परवाह करते हैं, तो आप चाहते हैं /oया कर सकते हैं /x
  • /y - मौजूदा फ़ाइलों को अधिलेखित करने से पहले शीघ्र न करें।
  • /z- अगर आपको लगता है कि कॉपी फेल हो सकती है और आप इसे रिस्टार्ट करना चाहते हैं, तो इसका इस्तेमाल करें। यह प्रत्येक फ़ाइल पर एक मार्कर रखता है क्योंकि यह कॉपी करता है, इसलिए आप xcopy कमांड को फिर से उठा सकते हैं जहां से इसे छोड़ा गया था।

यदि आपको लगता है कि xcopy (जैसे जब आप एक परतदार नेटवर्क कनेक्शन पर कॉपी कर रहे हैं) के माध्यम से भाग विफल हो सकता है, या कि आपको इसे रोकना होगा और इसे बाद में जारी रखना चाहते हैं, तो आप उपयोग कर सकते हैं xcopy /s/z c:\source d:\target

उम्मीद है की यह मदद करेगा।


2
@Iavinio यह एक संग्रह की नकल करते समय फ़ाइल या निर्देशिका पूछ रहा है। वहाँ एक तरीका है कि दबाने के लिए है?
Bitterblue

हाय @ मिनी-मी - मैंने पाया कि यदि यह एक निर्देशिका है, तो आप एक अनुगामी '/' वर्ण निर्दिष्ट कर सकते हैं और आपको वह संदेश दिखाई नहीं देगा।
डेवडेव

2
/i- यदि गंतव्य मौजूद नहीं है और एक से अधिक फ़ाइल कॉपी कर रहा है, तो मान लेता है कि गंतव्य एक निर्देशिका होना चाहिए।
लावीनियो

1
डायरेक्टरी से सिंगल फाइल कॉपी कैसे करें?
चरण राजू सीआर

10
"फ़ाइल या निर्देशिका" प्रॉम्प्ट के चारों ओर जाने के लिए, इस तरह कमांड करें ... echo f | xcopy /s /f srcfile destfile
wintondeshong

56

बैकअप डेटा के लिए मेरा पसंदीदा है:

ROBOCOPY "C:\folder" "C:\new_folder" /mir

/ मीर दर्पण के लिए है। आप फ़ाइलों को स्थानांतरित करने के लिए भी उपयोग कर सकते हैं। यह ठीक उसी फ़ोल्डर को पुन: पेश करता है। यह आवश्यकतानुसार फाइलों को हटा / अधिलेखित कर सकता है। मेरे लिए महान काम करता है। यह xcopy / copy से अधिक तेज़ है। यह विंडोज में भी बनाया गया है।

स्रोत: http://technet.microsoft.com/en-us/library/cc733145.aspx


2
मैं इसका समर्थन करता हूं। यह वास्तव में तेज है। xcopy की तुलना में बहुत तेज़
Ike

वहाँ एक तरह से इस तरह thumbs.db हटा दें?
drooh

54

बस स्पष्ट होने के लिए, जब आप उपयोग करते हैं xcopy /s c:\source d:\target, तो c: \ source और d: \ target के आसपास "" रखें, अन्यथा आपको त्रुटि मिलती है।

यानी अगर रास्ते में जगह है तो अगर आपके पास है:

"C:\Some Folder\*.txt"

लेकिन अगर आपके पास आवश्यक नहीं है:

C:\SomeFolder\*.txt

1
उद्धरण चिह्नों ने चाल बना दी;) धन्यवाद का उपयोग मैंने भी किया / अगर फाइल मौजूद है तो उसे बदलने के लिए Y: :) उदाहरण: "xcopy / s "c: \ source" "d: \ target" / Y```
जोएल कारनेइरो

18

आप XCopy या RoboCopy पर एक नज़र डालना चाहते हैं जो विंडोज पर लगभग सभी फ़ाइल कॉपी ऑपरेशंस के लिए काफी व्यापक समाधान हैं।


3
RoboCopy XCopy से बेहतर प्रतीत होता है क्योंकि xcopy फ़ाइल या फ़ोल्डर निर्णयों के लिए पूछता है। और मैं इसे ठुकरा नहीं सकता। यह पूर्ण स्वचालित काम करने में सक्षम होना चाहिए।
बिटरबेल्यू

@ मिनी-मुझे पता है कि यह बहुत देर हो चुकी है, लेकिन मुझे वही प्रासंगिक स्विच नहीं मिल रहा है। मैंने उसी नाम से एक रिक्त फ़ाइल बनाने का सहारा लिया जिसे मैं कॉपी कर रहा हूं और फिर इसे अधिलेखित कर दूंगा। यदि फ़ाइल पहले से मौजूद है, तो यह पूछने में परेशान नहीं करता है कि इसकी फ़ाइल या निर्देशिका है या नहीं। (यदि आप ऑटो डायरेक्टरी चाहते हैं तो आप पथ के लिए एक '/' जोड़ सकते हैं और यह कर देगा)। आशा है कि यह भविष्य के लोगों की मदद करता है!
टॉम सी

2
@ संदर्भ के लिए, echo f | xcopy source destination /yइसे स्वचालित बना देगा। यह सभी सवालों के जवाब के रूप में एक "एफ" प्रदान करता है। यह अधिलेखित अनुरोधों को भी पारित करेगा (च को हाँ के रूप में लिया गया है, मुझे लगता है)।
ndm13

14

लक्ष्य (F = फ़ाइल, D = निर्देशिका) पर फ़ाइल नाम या निर्देशिका नाम निर्दिष्ट करने के लिए? ' xcopy के साथ संकेत, आप निम्नलिखित कर सकते हैं ...

echo f | xcopy /f /y srcfile destfile

या हम में से केवल उन लोगों के लिए जो बड़े सबस्ट्रक्ट / फोल्डर की नकल कर रहे हैं:

उपयोग / i जो निर्दिष्ट करता है कि गंतव्य एक निर्देशिका होना चाहिए यदि एक से अधिक फ़ाइल की प्रतिलिपि बनाई जा रही है


(फाइलों के लिए गूंज "च" या निर्देशिका के लिए "डी")
जिंसावे

अब यह करने की कोशिश कर रहा है और यह सिर्फ काम कर रहा है - मुझे हमेशा संकेत मिलते हैं जब एक फ़ाइल को किसी अन्य निर्देशिका में कॉपी करने की कोशिश की जाती है। विन 10 का उपयोग करना अगर यह सब इको एफ पर प्रभावित करता है | xcopy / f / y "My.dll" "C: \ myFolder \ My.dll"। मैंने इसे अन्य स्विच के संयोजन के साथ बिना किसी लाभ (और पूंजी F) के संयोजन के साथ आज़माया है
Prof

3

यदि आप फ़ाइल को पूर्ण पथ का उपयोग नहीं करना चाहते हैं, तो दूसरे शब्दों में सापेक्ष पथ:

पथ में बैकस्लैश लिखना न भूलें और स्लैश न करें

उदाहरण :

    copy children-folder\file.something .\other-children-folder

पुनश्च: "वाइल्ड पैरामीटर" कहे जाने वाले इन वाइल्डकार्ड का उपयोग करके पूर्ण पथ को पुनः प्राप्त किया जा सकता है

    @echo off
    echo %%~dp0 is "%~dp0"
    echo %%0 is "%0"
    echo %%~dpnx0 is "%~dpnx0"
    echo %%~f1 is "%~f1"
    echo %%~dp0%%~1 is "%~dp0%~1"

कॉपी के बारे में यहां दस्तावेज देखें : https://technet.microsoft.com/en-us/library/bb490886.aspx

और बैच पैरामीटर प्रलेखन के लिए यहां भी: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true


मुझे लगता है कि उस backslash कहा जाता है।
लियोन बोहमन

2
@echo off

rem The * at the end of the destination file is to avoid File/Directory Internal Question.

rem You can do this for each especific file. (Make sure you already have permissions to the path)
xcopy /Y "\\Oldeserver\storage\data\MyFile01.txt" "\\New server\storage\data\MyFile01.txt"*
pause

rem You can use "copy" instead of "xcopy "for this example.

0

को देखो rsyncआधारित विंडोज उपकरण NASBackup । यदि आप rsync आदेशों से परिचित हैं तो यह एक बोनस होगा।

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