एक एक्सटेंशन की सभी फाइलों को एक फ़ोल्डर में कॉपी करना


1

मैं एक .batप्रोग्राम लिखने की कोशिश कर रहा हूं, जो किसी दिए गए एक्सटेंशन के साथ सभी फाइलें ढूंढेगा, उदाहरण के लिए * .doc, और उन्हें एक rarसंग्रह में डाल देगा ।

मैं चाहता हूं कि सभी फ़ाइलों की प्रतिलिपि बनाई जाए, भले ही उनका नाम एक ही हो (मेरे पास अलग-अलग निर्देशिकाओं में एक ही नाम वाली फाइलें हैं) मुझे परवाह नहीं है कि जब तक मैं उन सभी को नहीं रखता तब तक फ़ाइलों का नाम बदला जाएगा। उदाहरण के लिए, अगर मैं एक है new.docमें Desktopऔर एक अन्य new.docमें D:, मुझे परवाह नहीं करता है, तो दो या यहां तक कि दोनों में से एक का नाम बदलकर कर रहे हैं new1.docया new2.docया किसी अन्य तरीके से। वैकल्पिक रूप से, प्रोग्राम उन्हें उनके द्वारा प्राप्त पथ का उपयोग करके बचा सकता है। rarओवर 7-zipया किसी अन्य संपीड़न प्रोग्राम का उपयोग पसंद किया जाता है लेकिन यदि वास्तव में आवश्यक है, तो किसी अन्य प्रोग्राम का उपयोग करना ठीक है। अंतिम लेकिन कम से कम, मैं चाहता हूं कि कार्यक्रम पूरे कंप्यूटर (सभी हार्ड डिस्क) की खोज करे। उदाहरण के लिए, मेरे पास है C:, D:और F:मैं सभी 3 को खोजना चाहता हूं और संग्रह बनाना चाहता हूंD:\test.rar। मैं कई समाधानों की कोशिश कर चुका हूं और जहां तक ​​गया है

for %%i in (c: d: f:) do for /f "delims=" %%j in ('dir /s /a-d /b %%i\*.doc') do "C:\Program Files\WinRAR\Rar.exe" a d:\test.rar "%%~j"

अब मेरी समस्या यह है कि कुछ पीसी में यह ठीक काम करता है, लेकिन कुछ में यह वास्तव में मौजूद की तुलना में कम फाइलें पाता है। मुझे संग्रह *.docकी .docफ़ाइलों की कुल संख्या मिल रही है और संग्रह में फ़ाइलों की संख्या से मिली संख्या की तुलना करें । मुझे नहीं पता कि कुछ फाइलें क्यों नहीं मिलीं। किसी भी अंतर्दृष्टि या टिप्पणियों की बहुत सराहना की जाएगी।


कुछ मैं भूल गया कि मैं इसे और jpg के लिए उपयोग करना चाहता हूं, इसलिए rar का आकार 8 -10 gb की तरह विशाल होना चाहिए
user2237380

क्या फ़ंक्शन और गैर-फ़ंक्शन के पास अलग-अलग ऑपरेटिंग सिस्टम है? क्या वे अलग-अलग पैच स्तर हैं?
सायबरनार्ड

हम्म मैं उनमें से कुछ के लिए कोई विचार नहीं है मैं इसे देखूंगा और पोस्ट करूंगा। मेरे और मेरे gf के पास win7 64-बिट है
user2237380

जवाबों:


0

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

WinRAR a -ep2 -r D:\Test.rar C:\*.doc D:\*.doc F:\*.doc

बदलें -ep2के साथ -ep3यदि आप संग्रह के साथ-साथ ड्राइव पत्र संग्रहीत करना चाहते हैं। इसके अलावा, यदि आप किसी तरह अभी भी अपने सिस्टम पर मौजूद संग्रह की तुलना में कम मेल खाने वाली फ़ाइलों को पाते हैं, -e+rashतो स्विच जोड़ें और फिर तुलना करें। यह सुनिश्चित करना चाहिए कि कोई भी फाइल छूट न जाए, चाहे उनकी कोई भी विशेषता क्यों न हो।

पुरालेख के अंतिम आकार के लिए, बस एक NTFS (या exFAT) स्वरूपित ड्राइव पर सहेजें और आपको ठीक होना चाहिए। यदि एक बहुत बड़ी फ़ाइल आपके लिए चिंता का विषय है, तो -vकई वॉल्यूम बनाने के लिए स्विच पर एक नज़र डालें, यानी एक विभाजित संग्रह।


मैं अपने कार्यक्रम दोस्त की कोशिश करता है ठीक है, मैं 2 समस्याओं का ही काम करता हूं। जब मैं डॉक्टर के साथ कोशिश करता हूं तो मुझे लगता है कि मेरे पीसी में 169 मिल गया है आपका कार्यक्रम किसी कारण से 173 देता है और जब मैंने इसे पीडीएफ के साथ आजमाया तो मैंने 2919 को वापस किया 2922. -e + दाने मुझे डॉक के लिए एक ही परिणाम देता है मुझे लगता है कि मैं पीडीएफ के लिए इसका एक ही अनुमान लगाता हूं। मैं इसका परीक्षण करता हूं। जैसे ही मैं इसे चलाता हूं मुझे एक पॉप अप विंडो मिलती है (विंडर से) नैदानिक ​​संदेश कहते हुए: सी की सामग्री को नहीं पढ़ सकता: विंडोज \ CSC \ v2.0.6 *। डॉक एक्सेस से वंचित कर दिया जाता है। (और यह जारी है) 572 की कुल त्रुटियों के लिए। क्या मैं इसे किसी तरह छोड़ सकता हूं? Btw मुझे वास्तव में यह पसंद आया -ep3 विकल्प यह चट्टानें :)
user2237380

-E + rash स्विच के लिए मैंने इसे इस तरह लिखा है "C: \ Program Files \ WinRAR \ WinRar.exe" a -ep3 -r -e + rash D: \ Test.rar C: *। Doc D: *। Doc F: *। Doc क्या यह सही है? इसके अलावा wma फ़ाइलों के लिए मैं 47 पाया कार्यक्रम के साथ मैं ई के साथ 77 पाया + दाने के बिना
user2237380

जाहिर है अगर यह आपकी अपेक्षा से अधिक परिणाम दे रहा है, तो उन स्थानों पर फाइलें हैं जिनके बारे में आप भी नहीं जानते हैं! इसके अलावा, यदि आपके पास फ़ाइल तक पहुंचने की अनुमति नहीं है, तो आप प्रोग्राम से ऐसा करने की अपेक्षा कैसे करते हैं? इसके बजाय एक उन्नत / व्यवस्थापक कमांड प्रॉम्प्ट से इसे चलाने का प्रयास करें। यदि आपकी सभी फ़ाइलों तक पहुँच है, तो rar को कोई भी त्रुटि प्रदर्शित नहीं करनी चाहिए, लेकिन यदि आप वास्तव में त्रुटियों को दबाना चाहते हैं तो आप -inulस्विच का उपयोग कर सकते हैं । हां, आपने -e+rashविकल्प का सही उपयोग किया है, लेकिन सुनिश्चित करें कि आप निर्दिष्ट करें C:\*.docऔर न कि सिर्फ C:*.doc
करण

-इनुल वास्तव में अच्छा है यह पूरी तरह से काम करता है धन्यवाद। एक आखिरी सवाल। मैं प्रोग्राम के कारण को छिपाने के लिए एक vbs का उपयोग कर रहा हूं जब मैंने विशिष्ट एक्सटेंशन को पीडीएफ की तरह चुना है, तो प्रोग्राम को एक घंटे से अधिक समय लगता है क्योंकि मेरे पास पीडीएफ की बड़ी राशि है (2919) कुल 13Gb का आकार) VBS स्क्रैप्ट: WshShell = CreateObject ("WScript.Shell") WshShell.Run chr (34) और "C: \ Users \ A \ Desktop \ vi के nove.bat" और Chr (34) को सेट करें। 0 सेट करें WshShell = कुछ भी नहीं है कि इसे एक ही समय में छिपाया जा सके और एक व्यवस्थापक के रूप में बनाया जा सके?
user2237380

सबसे पहले आप स्वीकार किए गए के बारे में सही हैं मैं इसे पूरी तरह से भूल गया था। आप छिपी के लिए स्पष्टीकरण के लिए धन्यवाद। और दोहरी पोस्टिंग के लिए खेद है कि मैं इसे फिर से नहीं दोहराऊंगा मुझे यकीन नहीं था अगर यह यहाँ पूछना ठीक था चूंकि मुख्य प्रश्न अलग था। कहा जा रहा है कि आप सही हैं 100% और मैं माफी मांगता हूं और मैं इसे फिर से दोहराता नहीं
हूं
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.