7-ज़िप बनाने के लिए फ़ोल्डर्स का एक पूरा गुच्छा कैसे करें


18

मुझे उन चित्रों का एक गुच्छा मिला, जिन्हें मुझे 800x600 पिक्सेल में क्रॉप करना था। यह आसानी से हो गया, लेकिन अब मुझे उन्हें अपलोड करना है ताकि परिवार उन सभी को देख सके।

बात यह है, यह चित्रों में 500 एमबी है। मैंने अलग फ़ोल्डर्स को बस ज़िप करने का फैसला किया, जिसमें प्रत्येक में लगभग समान मात्रा में चित्र हैं। इस तरह मैं हर दिन एक जोड़े को अपलोड कर सकता हूं। इसे मैन्युअल रूप से करना बहुत लंबा और कठिन काम है। मुझे आश्चर्य है कि अगर 7-ज़िप को प्रत्येक फ़ोल्डर को व्यक्तिगत रूप से संभालने का एक तरीका है?

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


1
आप कितने फोल्डर की बात कर रहे हैं? 7? 147? यदि आप बैच फ़ाइलों के साथ अच्छे नहीं हैं, लेकिन शायद यह उस चुनौती से निपटने का एक अच्छा अवसर है। :)
JMD

कुल 105 फ़ोल्डर
KdgDev

जवाबों:


25

कमांड प्रॉम्प्ट से चलाएं जिसकी वर्किंग डायरेक्टरी आपकी My Picturesडायरेक्टरी है, यह कमांड आपके डायरेक्टरी के सभी जिप फाइल को छोड़कर प्रत्येक सबडायरेक्ट की सामग्री की एक जिप फाइल बनाएगा My Pictures

संपादित करें: मैंने उनके नाम के रिक्त स्थान के साथ निर्देशिकाओं के लिए अनुमति देने के लिए उद्धरण चिह्नों को जोड़ा है।

for /D %%d in (*.*) do 7z a -tzip "%%d.zip" "%%d"

इसके अलावा: निम्न संस्करण ज़िप फ़ाइल के अंदर एक उपनिर्देशिका में फ़ाइलें नहीं डालेगा, बल्कि इसके मूल में:

for /D %%d in (*.*) do 7z a -tzip "%%d.zip" ".\%%d\*"

विंडोज 7 और इसके बाद के संस्करण में

for /D %d in (*.*) do 7z a -tzip "%d.zip" "%d"

या

for /D %d in (*.*) do 7z a -tzip "%d.zip" ".\%d\*"

मैंने अपने क्लासपाथ में 7-ज़िप फ़ोल्डर जोड़ने की कोशिश की है, लेकिन यह काम नहीं करेगा। यदि मैं केवल 7z के बजाय निष्पादन योग्य का पता लगाने के लिए पूरे स्ट्रिंग का उपयोग करता हूं, तो यह काम करता है। हालांकि मुझे लगता है कि कक्षा पथ में उस स्ट्रिंग को जोड़ने का एक ही प्रभाव होना चाहिए?
KdgDev

वह जगह classpathहै जहाँ जावा कक्षाओं और पुस्तकालयों के लिए दिखता है। google.com/search?q=classpath आपने स्पष्ट रूप से भ्रमित कर दिया है कि pathनिष्पादन केंद्र के लिए शेल कहाँ दिखता है।
ग्यारह

प्रश्न: स्क्रिप्ट काम करती है, लेकिन नहीं जब फ़ोल्डर-नाम में रिक्त स्थान होते हैं ...
KdgDev

अद्यतन के लिए धन्यवाद। दूसरी स्क्रिप्ट के साथ, क्या आपका मतलब है कि ज़िप की सामग्री "चपटा" होगी?
KdgDev

6
यह मेरे लिए महान काम किया, हालांकि मैं बदलना पड़ा %%dकरने के लिए %dके रूप में अपने 7 विन बॉक्स वर का नाम बहुत लंबा किया जा रहा फेंक एक त्रुटि "%% घ इस समय अनपेक्षित था" के बारे में शिकायत की।
बेंजाम

7

मुझे कमांड लाइन काम करने के लिए नहीं मिली, इसके बजाय मैंने WinRAR डाउनलोड किया और mtone सही था - WinRAR के पास कई फ़ोल्डर्स को अपनी अलग ज़िप फ़ाइलों में ज़िप करने का विकल्प है।

उदाहरण के लिए C:\Files\Fables 01में C:\Files\Fables 01.zip, और C:\Files\Fables 02में C:\Files\Fables 02.zip

WinRAR के साथ, वह फ़ोल्डर खोलें जिसमें वह फ़ोल्डर है जिसमें आप ज़िप करना चाहते हैं, फिर इन चरणों का पालन करें:

  • उन सभी फ़ोल्डरों का चयन करें जिन्हें आप ज़िप्ड / रेयर चाहते हैं
  • "जोड़ें" या Alt+ Aया कमांड्स -> "पुरालेख में फ़ाइलें जोड़ें"
  • RAR या ZIP चुनें
  • "फ़ाइलें" टैब पर जाएं
  • अभिलेखागार बॉक्स के नीचे "प्रत्येक फ़ाइल को अलग करने के लिए संग्रह रखें" जांचें

जब आपको कोई अन्य सेटिंग मिल जाती है जिसे आप निश्चित करते हैं, तो ओके और बूम को हिट करें: कई फ़ोल्डरों की कई ज़िप फाइलें। यह कमांड लाइन 7zip की तुलना में बहुत आसान काम करता है।


भले ही यह "प्रत्येक फ़ाइल" कहता है यह चेकबॉक्स फ़ोल्डर्स के साथ भी काम करता है।
धापिन

1
यहां सभी प्रस्तावित समाधानों में से एक ने 2018 में मेरे लिए सबसे अच्छा काम किया। बस यह जांचना सुनिश्चित करें कि आप आर्काइव को .zip करना चाहते हैं या यह इसके बजाय .rar फ़ाइलों का एक गुच्छा बना देगा।
एरिक हेपरले - कोडस्लाइयर २०१० नोव

5

ग्यारह ग्यारह के उत्तर का बस थोड़ा सा अद्यतन: नीचे दिया गया कोड एक बैच फ़ाइल बनाता है जिसे कई वस्तुओं पर गिराया जा सकता है।

@echo off
if [%1]==[] goto :eof
:loop
7z a -tzip "%~1.zip" "%~1"
shift
if not [%1]==[] goto loop

इस बैच फ़ाइल को रजिस्ट्री के माध्यम से संदर्भ मेनू में जोड़ा जा सकता है:

  1. [HKEY_CLASSES_ROOT \ Folder \ shell] के तहत एक नई कुंजी बनाएं, इसे cmd1 कहें
  2. स्ट्रिंग मान संपादित करें और इसे 'बैच ज़िप' कहें
  3. इस एक के तहत एक और नई कुंजी बनाएं और इसे कमांड कहें
  4. डबल बच गए स्लैश के साथ, अपने पथ के मूल्य को बदलें

इसलिए उदाहरण के लिए, मेरी प्रविष्टि "C: \ Users \ Rory \ Dropbox \ _apps \ बैच_zip.bat" "% 1" है

एक बार जब आप ऐसा करते हैं, तो आपके पास 'बैच ज़िप' के लिए आपके संदर्भ मेनू में एक प्रविष्टि होगी जो किसी भी चयनित फ़ोल्डर को अलग-अलग अभिलेखों में ज़िप करेगा

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

अगर किसी को रजिस्ट्री में इसे ठीक करने का कोई तरीका पता है तो कृपया बताएं।

बैच पर चयनित फ़ोल्डर्स को खींचकर उन्हें एक के बाद एक करना होगा।


1
7z exe मेरे रास्ते पर नहीं था और इसलिए मुझे आपकी स्क्रिप्ट को थोड़ा संपादित करना पड़ा। "C: \ Program Files (x86) \ 7-Zip \ 7z.exe" -tzip "% ~ 1.zip" "% ~ 1"
Ryan

1
+1 खींचें और ड्रॉप lol के साथ आलसीपन को प्रोत्साहित करने के लिए। मैंने अभी एक संशोधित संस्करण @ http://superuser.com/a/1160047/678687
Enteleform

3

युक्ति: यदि आप छवियाँ JPGs हैं, तो वे पहले से ही संपीड़ित हैं। संपीड़न (कम्प्रेशन लेवल: स्टोर) के बिना 'आर्काइव' मोड में 7-ज़िप का उपयोग करें, इससे प्रक्रिया में काफी तेजी आएगी।

यहां तक ​​कि अगर आप अल्ट्रा संपीड़न का उपयोग करते हैं तो आप शायद ही 5% हासिल करेंगे, निश्चित रूप से प्रयास के लायक नहीं।

मैं व्यावहारिक रूप से अटैचमेंट जोड़ने के संदर्भ में सोच रहा था।

मैं उन्हें ईमेल अनुलग्नक के रूप में नहीं भेजूंगा। बल्कि तथाकथित एक-क्लिक-होस्टिंग सर्वर पर अपलोड करें (जैसे drop.io, rs, mu, ms, इत्यादि, विकल्प बहुत सारे हैं) और फिर डाउनलोड लिंक अपने दोस्तों और परिवार को ईमेल के माध्यम से भेजें।


2
हालांकि, उन्हें मेल करना आसान होगा।
रूक

मुझे नहीं लगता कि 475 या 500 एमबी अपलोड करने में बहुत अंतर है, निश्चित रूप से उस समय के लिए बनाने के लिए पर्याप्त नहीं है जो 'अल्ट्रा' के साथ एक

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

यही कारण है कि मौली ने "संग्रह" मोड का सुझाव दिया; यह सब एक फ़ाइल में उन्हें भरता है, समय बर्बाद करने के लिए कुछ है जो पहले से ही संपीड़ित करने की कोशिश कर रहा है के बिना ...
Adrien

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

2

मैंने पाया कि रोरीओक का उत्तर बहुत मददगार है, उसने इसके batch scriptलिए Windowsआपको drag-&-dropत्वरित, स्वचालित संग्रह के लिए फाइलों की अनुमति दी ।


इस स्क्रिप्ट का उपयोग करने के लिए, बस इसे एक .batएक्सटेंशन के साथ सहेजें , और फिर आप बैच फ़ाइल ( या बैच फ़ाइल के लिए एक शॉर्टकट ) पर फ़ाइलों और / या फ़ोल्डरों को खींच सकते हैं ।

.zipफ़ाइलें स्रोत फ़ाइलों के समान निर्देशिका में बनाई जाएंगी।
( हालांकि गंतव्य को स्क्रिप्ट में बदल दिया जा सकता है @archivePath )


अनुकूलन और समग्र कार्यक्षमता में सुधार के लिए मैंने कुछ अपडेट किए:

  • चर नाम दिया
  • एक forलूप लागू किया जो दिए गए तर्कों के माध्यम से पुनरावृत्ति करता है
    ( साथ ही delayedexpansionरनवे चर की अनुमति देता है )
  • ifअंतर करने के लिए अतिरिक्त शर्तें files&folders
    • यह फ़ोल्डर सामग्री को संग्रह के भीतर मूल फ़ोल्डर को संलग्न करने के बजाय सीधे संग्रह में जोड़ा जा सकता है
      ( ईजी:   \archive.zip\file.txt   वीएस   \archive.zip\parent_folder\file.txt )
  • यदि कोई त्रुटि नहीं थी, तो विफल इंस्टेंस को प्रदर्शित करने के लिए एक त्रुटि लॉग जोड़ा या एक सफल संदेश प्रदर्शित किया

@Echo OFF
SetLocal EnableDelayedExpansion



Rem //  7-Zip Executable Path
Set sevenZip="C:\Program Files\7-Zip\7z.exe"



Rem // START: NewLine Variable Hack
Set newLine=^


Rem // END: NewLine Variable Hack !! DO NOT DELETE 2 EMPTY LINES ABOVE !!



Rem //  Set ErrorLog Variables
Set errorCount=0
Set separator=--------------------------------------------------------
Set errorLog=!newLine!!newLine!!separator!!newLine!!newLine!
Set errorPrefix=ERROR @:
Set successMessage=All Files Were Successfully Archived



Rem //  Loop Through Each Argument
SetLocal DisableDelayedExpansion
for %%x in (%*) do (

    Rem //  Use Current Argument To set File, Folder, & Archive Paths
    SetLocal DisableDelayedExpansion
    Set filePath="%%~x"
    Set directoryFiles="%%~x\*"
    Set archivePath="%%~x.zip"
    SetLocal EnableDelayedExpansion

    Rem //  Source Is A Folder
    if exist !directoryFiles! (
            Set sourcePath=!directoryFiles!
    )

    Rem //  Source Is A File
    if not exist !directoryFiles! (
            Set sourcePath=!filePath!
    )

    Rem //  Print Separator To Divide 7-Zip Output
    echo !newLine!!newLine!!separator!!newLine!!newLine!

    Rem //  Add Files To Zip Archive
    !sevenZip! A -TZIP !archivePath! !sourcePath!

    Rem //  Log Errors
    if ErrorLevel 1 (
        Set /A errorCount=errorCount+1
        Set errorLog=!errorLog!!newLine!!errorPrefix!!sourcePath!
    )
)



Rem //  Print ErrorLog
if !errorCount!==0 (
    Set errorLog=!errorLog!!newLine!!successMessage!
)
Echo !errorLog!!newLine!!newLine!!newLine!



Rem //  Keep Window Open To View ErrorLog
pause

1

7-ज़िप में हर फ़ाइल को अपने फ़ोल्डर (* /) में UNZIP करने का विकल्प होता है, लेकिन आपके द्वारा खोजे जा रहे विपरीत क्रिया को करने के लिए संदर्भ कमांड का अभाव होता है।

उन्होंने कहा, मुझे याद है कि अतीत में विनर का उपयोग करके यह सटीक काम किया था। वहाँ एक विकल्प "फ़ोल्डर प्रति अद्वितीय संग्रह" या उस प्रभाव के लिए कुछ है।


-1

पिकासा प्राप्त करें और पिकासा के वेब एल्बम पर अपलोड करें। तब हर कोई आसानी से तस्वीरें ऑनलाइन प्राप्त कर सकता है और उन्हें देख सकता है। मूल अपलोड करने में भी सक्षम हो (ताकि आपका परिवार बड़े संस्करणों को प्रिंट कर सके)


अगर आपको लगता है कि लोग ज़िप फ़ाइलों को डाउनलोड करने और निकालने से खुश होंगे, तो मुझे लगता है कि आप उदास रूप से निराश होंगे ... वेब इंटरफ़ेस हर किसी के लिए बहुत आसान है ....
कुर्रू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.