स्वचालित रूप से कई फ़ोल्डरों को ज़िप करें


0

मेरे पास श्रेणी के फ़ोल्डर में फ़ोटो से भरे फ़ोल्डर हैं

जैसे

  • छुट्टियां
    • स्पेन
    • फ्रांस
    • इटली
  • परिवार
    • बेटा
    • daugher
  • क्रिसमस
    • 2010
    • 2011

... बहुत अधिक समय को छोड़कर ... लगभग 100 फ़ोल्डर हैं।

मुझे प्रत्येक उप फ़ोल्डर को संपीड़ित करने की आवश्यकता है (यानी स्पेन, फ्रांस इटैलिक, बेटा, बेटी आदि) व्यक्तिगत रूप से; ऐसा है कि, उदाहरण के लिए छुट्टियों के श्रेणी फ़ोल्डर के लिए मैं के साथ समाप्त होगा:

  • छुट्टियां
    • स्पेन
    • spain.zip
    • फ्रांस
    • france.zip
    • इटली
    • italy.zip

... और इसी तरह। (या rar फ़ाइलों का उपयोग करके)

यदि संभव हो तो मैं इसे मैन्युअल रूप से करने से बचना चाहता हूं, और मुझे लगता है कि यह WinRar का उपयोग करते हुए कमांड लाइन से संभव है, (हालांकि मैं कुछ और उपयोग कर सकता था अगर वह बेहतर था)। क्या कोई मुझे दे सकता है (और संक्षेप में मुझे समझा सकता है) मैं जिस कोड का उपयोग करता हूं, और उसका उपयोग कैसे करना है। मैं कमांड लाइन के बारे में थोड़ा जानता हूं लेकिन मुझे काफी सीमित अनुभव है।

मैं विंडोज 7 का उपयोग कर रहा हूं


यदि आप यह भी नहीं जानते कि इस तरह से एक कार्यक्रम लिखना कैसे शुरू करें, तो आपके पास इसे करने का कौशल नहीं है। इस तरह का एक सवाल सुपरयुसर के लिए अच्छा नहीं है।
रामहुंड

4
चूँकि उनका अनुरोध एक डॉस कमांड के साथ पूरा किया जा सकता है, यह सुपरसुअर के लिए सटीक फिट की तरह लगता है।
टॉम

जवाबों:


1

मुझे नहीं लगता कि बैच फ़ाइल का उपयोग करना आसान होगा , लेकिन यह संभव होना चाहिए।

बैच आपको इस तरह लूप के लिए निर्देशिकाओं के माध्यम से पुनरावृति करने की अनुमति देता है:

for /d %%X in (directorySet) do ( command )

/ डी को यह निर्दिष्ट करने की आवश्यकता है कि आप निर्देशिका
%% X के माध्यम से लूपिंग करेंगे सूची सूची में एक निर्देशिका
है जो 'इको "हैलो" की तरह चलना है।

स्रोत: http://www.robvanderwoude.com/for.php

यह सब मैं वास्तव में जानता हूं कि आपकी मदद कर सकता है, जो आप कमांड के स्थान पर उपयोग करते हैं वह आपके द्वारा उपयोग किए जा रहे प्रोग्राम पर बहुत निर्भर है।

पॉवरशेल में यह आसान होगा क्योंकि इसमें अधिक बैश-जैसा नोटेशन है, और यह अधिक लचीला है, लेकिन बैच का उपयोग करना पूरी तरह से ठीक है।

क्षमा करें कि मेरे द्वारा दी जा सकने वाली सभी सहायता, मुझे बैच का बहुत कम ज्ञान है ...


1

डॉस में, अपने 100+ फ़ोल्डरों वाले पैरेंट फोल्डर में बदलाव करें, फिर एक "कमांड" के लिए इस तरह चलाएं:

for %v in (*.*) do pkzip %v.zip %v

अपने कमांड लाइन ज़िप / संग्रह उपकरण के साथ pkzip बदलें। 2 और 3 "% v" फ़ोल्डर नामों का विस्तार।


आह, हाँ - DOS डिफ़ॉल्ट रूप से फ़ोल्डर में पुनरावृत्ति नहीं करता है। अच्छा।
नीक

1

मेरे पास आपके आदेश को पकाने के लिए एक विंडोज सिस्टम काम नहीं है,
लेकिन, यहाँ चीजों की एक मोटी सूची है,

  • आप का प्रयोग करेंगे dir कमांड एक में पाश के लिए (या, हो सकता है आप एक और अधिक हाल के मैनुअल पृष्ठ की जरूरत है)
  • अपनी dirलिस्टिंग को गहराई = 1 निर्देशिका तक सीमित करें
    • /A:D Folder स्विच (?)
    • किसी तरह से पुनरावृत्ति न करने या गहराई का उपयोग करने के लिए == 1 (मैं अब विंडोज़ बैच फाइलें भूल गया हूं)
  • 7z की भी जाँच करें
  • अगर आप अक्सर विंडोज़ स्क्रिप्टिंग चेक में होते हैं PowerShell

forfiles एक और विकल्प है
Sathyajith भट्ट

1

इसी तरह के एसयू प्रश्न के लिए मेरे जवाब की जाँच करें "मैं 7zip सेक्शन लाइन के साथ प्रत्येक चयनित निर्देशिका से अलग 7z फाइलें कैसे बनाऊं?" । इसे आसानी से एक अलग कमांड-लाइन जिप / आर्काइव टूल का उपयोग करने के लिए अनुकूलित किया जा सकता है, बस DOबयान के बाद भाग को बदल दें।

मैं व्यक्तिगत रूप से विनर पर 7-जिप और अन्य संपीड़न उपयोगिताओं की जोड़ी को पसंद करता हूं जो मैंने कोशिश की थी। यह शक्तिशाली, त्वरित और मुफ्त है। ध्यान दें कि यह संभव नहीं है कि आपकी छवि फ़ाइलों को उनके स्वरूप की प्रकृति से बहुत अधिक संकुचित किया जा सके, वे आमतौर पर पहले से ही परिष्कृत छवि उन्मुख एल्गोरिदम के साथ संकुचित होते हैं जो आमतौर पर एक संपीड़न उपयोगिता में उपयोग किए जाने वाले किसी भी सामान्य से बेहतर होता है - हालांकि नॉन-फ्री विनज़िप प्रोग्राम के दावों से जेपीईजी इमेज फ़ाइलों को 20-25% तक कम किया जा सकता है।


धन्यवाद, हां मुझे पता है, मैं केवल उन्हें ज़िप करना चाहता हूं ताकि मैं कई में से एक एकल फ़ाइल बना सकूं।
बायरानायसगुर

2
@byronyasgur: उस स्थिति में, अधिकांश उपयोगिताओं में उन फ़ाइलों को संपीड़ित करने का प्रयास नहीं करने का विकल्प होता है, जो इस प्रक्रिया को गति देती हैं। 7-जिप के -mलिए हेल्प फाइल में स्विच ( 7-zip.chmकमांड लाइन संस्करण डाउनलोड में) देखें। BTW, 7-ज़िप भी बना सकते हैं। ज़िप फ़ाइलें यदि आप उन्हें किसी कारण से पसंद करते हैं)।
मार्टिउ

0

मैंने सोचा कि बेहतर होगा कि मैं खुद के सवाल का जवाब दूं और स्वीकार करूं कि मददगार जवाबों के बावजूद, (जवाब देने के बजाय सभी को उलाहना दे रहा है) ... ताकि भविष्य के आगंतुकों को संक्षिप्त जवाब मिल सके। इसका कारण यह है कि मैंने चार परिणामों के संयोजन से अपना परिणाम प्राप्त किया, इसलिए यहां परीक्षण किए गए समाधान का परीक्षण किया गया।

मैं 7zip में बदल गया (कमांड लाइन संस्करण को डाउनलोड करना और इसे अपने उपयोगकर्ता फ़ोल्डर में रखना) क्योंकि यह Winrar की तुलना में कमांड लाइन ऑपरेशन पर बेहतर प्रलेखन है।

फिर मैंने एक बैच फ़ाइल बनाई, जिसे मैंने उस फ़ोल्डर से चलाया, जिसके सबफ़ोल्डर्स में मैं ज़िप करना चाहता था; और इसे निम्नलिखित आदेश में डाल दिया, जिसे मैं अन्य उत्तरों से प्राप्त करता हूं:

for /d %%i in (*.*) do "c:\users\user\7za" a -tzip "c:\path\to\output\folder\%%i.zip" "%%i"

(मेरा उपयोगकर्ता नाम 'उपयोगकर्ता' है, इसलिए इसे किसी व्यक्ति के विंडोज 7 उपयोगकर्ता नाम के अनुसार समायोजित किया जाएगा)

मैंने विभिन्न पहलुओं जैसे कि / d और -tzip को हटाते हुए कमांड का परीक्षण किया और जब तक यह सब जगह नहीं था तब तक मुझे काम नहीं मिला।

मैंने इसे एक अच्छा संसाधन http://www.dotnetperls.com/7-zip-examples भी पाया

NB मैं फ़ोल्डर की गहराई से चिंतित नहीं था और मेरे मामले में सभी उप फ़ोल्डर्स शीर्ष स्तर के फ़ोल्डर्स से केवल एक स्तर नीचे हैं। इसके अलावा इन फ़ोल्डरों में केवल फाइलें होती हैं, न कि अधिक फ़ोल्डर्स। मुझे संदेह है कि यदि उपरोक्त कोड फ़ोल्डर्स के भीतर मौजूद फ़ोल्डरों के लिए काम करेगा, लेकिन मुझे यकीन है कि इसे आसानी से अनुकूलित किया जा सकता है।

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