Double Commander

2.10. संग्रहण संचालन (Archive Handling)

सामग्री

1. कंप्रेस्ड फ़ाइलों के साथ काम करना
2. प्लगइन्स का उपयोग करना
3. बाहरी संग्रहक (Archiver) का उपयोग करना
4. बाहरी संग्रहक एकीकरण कॉन्फ़िगर करना
4.1. नया बाहरी संग्रहक जोड़ना
4.2. बाहरी संग्रहक के साथ इंटरफ़ेस करने के लिए चर
4.3. बाहरी संग्रहक के चरों के लिए संशोधक
4.4. कॉन्फ़िगर करना: "सूची" (List) क्रिया
4.5. सामग्री सूची पुनर्प्राप्त करना
4.5.1. विश्लेषण किए जाने वाले क्षेत्र को सीमित करना
4.5.2. सामग्री सूची को पार्स करना
4.5.3. पार्सिंग के लिए मानक सिंटैक्स
4.5.4. मानक सिंटैक्स का उदाहरण
4.5.5. पार्सिंग के लिए उन्नत सिंटैक्स
4.5.6. उन्नत सिंटैक्स का उदाहरण
4.6. कॉन्फ़िगर करना: "निकालें" (Extract) क्रिया
4.7. कॉन्फ़िगर करना: "जोड़ें" (Add) क्रिया
4.8. कॉन्फ़िगर करना: "हटाएं" (Delete) क्रिया
4.9. कॉन्फ़िगर करना: "परीक्षण" (Test) क्रिया
4.10. कॉन्फ़िगर करना: "बिना पथ के निकालें" (Extract without path) क्रिया
4.11. कॉन्फ़िगर करना: "स्व-निकालने वाला संग्रह बनाएं" (Create self-extracting archive) क्रिया
4.12. कॉन्फ़िगर करना: "ID"
4.13. डीबग करना (Debugging)
4.14. "अन्य" बटन मेनू
5. संबद्ध अनुप्रयोगों में संग्रह फ़ाइलें खोलना

1. कंप्रेस्ड फ़ाइलों के साथ काम करना

Double Commander कंप्रेस्ड फ़ाइलों (संग्रहों) को ठीक उसी प्रकार संभाल सकता है जैसे वे सामान्य फ़ोल्डर हों।

उदाहरण के लिए, यदि हमारे पास पैनल में कोई ZIP फ़ाइल है, तो हम बस इसे चुन सकते हैं, Enter दबा सकते हैं, और पैनल ZIP की सामग्री को इस तरह दिखाएगा जैसे हमने किसी निर्देशिका (डिक्सट्री) में प्रवेश किया हो।

Double Commander बहुत लचीला है और कंप्रेस्ड फ़ाइलों को संभालने के लिए अपने स्वयं के इंटरफ़ेस के माध्यम से बाहरी प्रोग्रामों का उपयोग कर सकता है। यह अभिलेखागार को संभालने के लिए दो अलग-अलग सिद्धांतों का उपयोग करता है:

जब हम एक संग्रह फ़ाइल खोलने का प्रयास करते हैं, तो Double Commander पहले उपलब्ध पैकर प्लगइन्स (Packer plugins) की सूची की जांच करता है।

एक बार कंप्रेस्ड फ़ाइल के अंदर जाने के बाद, हम कुछ बुनियादी कार्य कर सकते हैं जैसे फ़ाइलें देखना, उन्हें दूसरे पैनल में कॉपी करना और कुछ अन्य सीमित सुविधाएँ क्रियान्वित करना।

नीचे दी गई छवि एक उदाहरण दिखाती है, जहाँ हमने कंप्रेस्ड फ़ाइल "help.rar" चुनी और फिर Enter दबाया, बिल्कुल वैसे ही जैसे कि वह एक सामान्य निर्देशिका हो:

संग्रह देखना

देखें (F3) या संपादित करें (F4) कमांड को कॉल करने के बाद, Double Commander कर्सर के नीचे की फ़ाइल को अस्थायी फ़ाइलों की सिस्टम निर्देशिका में निकाल देगा और उसे खोल देगा। व्यूअर को बंद करने के बाद, अस्थायी फ़ाइल को हटा दिया जाएगा। यदि संपादक में खुली फ़ाइल बदली जाती है, तो Double Commander इसे वापस पैक करने की पेशकश करेगा (यदि संग्रह प्रारूप और पैकर प्लगइन या बाहरी संग्रहक इस कार्यक्षमता का समर्थन करते हैं)।

डबल-क्लिक करने या Enter दबाने पर, Double Commander पैक की गई फ़ाइल की विशेषता विंडो दिखाएगा:

पैक की गई फ़ाइल की विशेषताएं

पैकर लाइन उपयोग किए जा रहे पैकर प्लगइन का नाम या बाहरी संग्रहक का नाम दिखाती है।

बटन:

Double Commander <AutoExtractOpenMask> का उपयोग करके संबद्ध प्रोग्रामों में फ़ाइलों को स्वचालित रूप से खोलने की अनुमति देता है।

बंद होने पर, Double Commander सभी अस्थायी फ़ाइलों को हटा देता है।

2. प्लगइन्स का उपयोग करना

हम कंप्रेस्ड अभिलेखागार को संभालने के लिए बाहरी "पैकर प्लगइन्स" (Packer plugins) फ़ाइलों का उपयोग करने के लिए Double Commander को कॉन्फ़िगर कर सकते हैं।

इंस्टॉलेशन के साथ ही, Double Commander में पहले से ही कुछ ऐसे .WCX प्लगइन फ़ाइलें शामिल होती हैं।

इसके अलावा, इंटरनेट पर कई अन्य प्लगइन्स उपलब्ध हैं। हम .WCX प्लगइन्स की खोज कर सकते हैं।

यह भी ध्यान रखें कि Total Commander के लिए बनाए गए अधिकांश प्लगइन्स मूल रूप से Double Commander में भी काम कर सकते हैं।


उन्हें स्थापित करने, सक्षम करने या कॉन्फ़िगर करने के लिए, हमें कॉन्फ़िगरेशन > विकल्प... > प्लगइन्स > प्लगइन्स WCX पर जाना होगा:

कॉन्फ़िगरेशन > प्लगइन्स WCX

कृपया ध्यान रखें कि कुछ प्रारूप केवल-पठन (Read-only) होते हैं, जिसका अर्थ है कि आप केवल सामग्री देख सकते हैं, निकाल सकते हैं और परीक्षण कर सकते हैं।

3. बाहरी संग्रहक (Archiver) का उपयोग करना

कभी-कभी जिस प्रकार के संग्रह का हम उपयोग करना चाहते हैं, उसके लिए कोई प्लगइन उपलब्ध नहीं होता है।

या फिर किसी अन्य कारण से, कभी-कभी हम स्पष्ट रूप से एक बाहरी पैकर का उपयोग करना चाहते हैं ताकि उन सुविधाओं और कार्यात्मकताओं का लाभ उठाया जा सके जो प्लगइन्स में मौजूद नहीं हैं।

Double Commander बाहरी संग्रहकों को संभालने के लिए Total Commander के MultiArc प्लगइन के समान कार्यप्रणाली का उपयोग करता है।

संक्षेप में, एक बाहरी संग्रहक के उपयोग को इस प्रकार सारांशित किया जा सकता है: यह हमारे परिचित संग्रहक को शुरू करने का एक तरीका है, लेकिन Double Commander द्वारा संचालित होता है, जो संग्रहक के निष्पादन योग्य फ़ाइल को विभिन्न मापदंड (पैरामीटर) प्रदान करता है, जिससे वह एप्लिकेशन में ही एकीकृत महसूस होता है

इस पृष्ठ का शेष भाग इसी विषय पर चर्चा करेगा: बाहरी संग्रहक को हमारे आवश्यक कार्यों को पूरा करने के लिए लॉन्च करने के लिए Double Commander को कैसे कॉन्फ़िगर किया जाए।

मान लीजिए कि हम .rar संग्रहों को संभालने के लिए "rar.exe" का उपयोग करना चाहते हैं।

जैसा कि हम अनुमान लगा सकते हैं, मूल बात यह है कि हमें यह कॉन्फ़िगर करने की आवश्यकता है कि निम्नलिखित कार्यों को करने के लिए बाहरी संग्रहक को कैसे कॉल किया जाए...

यह नीचे दिखाए गए अनुसार कॉन्फ़िगरेशन विकल्प "संग्रहक" (Archiver) के माध्यम से किया जाएगा:

कॉन्फ़िगरेशन > संग्रहक

सभी सेटिंग्स multiarc.ini फ़ाइल में संग्रहीत होती हैं।

अगले अनुभागों में, हम बाहरी पैकर के उपयोग को ठीक से एकीकृत करने के लिए Double Commander द्वारा प्रदान की जाने वाली विभिन्न संभावनाओं को देखेंगे।

4. बाहरी संग्रहक एकीकरण कॉन्फ़िगर करना

हम यहाँ प्रत्येक फ़ील्ड का वर्णन नहीं करेंगे क्योंकि काम शुरू करने पर यह बहुत सहज महसूस होगा, लेकिन हम एक एकीकरण उदाहरण का विस्तार से वर्णन करने में समय लगाएंगे।

हम "rar.exe" बाहरी संग्रहक के एकीकरण का वर्णन करेंगे। एक संपूर्ण चरण-दर-चरण उदाहरण से बेहतर कुछ नहीं है।

4.1. नया बाहरी संग्रहक जोड़ना

हम नीचे "जोड़ें" (Add) बटन पर क्लिक करते हैं, संग्रहक को एक सार्थक नाम देते हैं, और फिर इसे कॉन्फ़िगर करना शुरू कर सकते हैं।

नया बाहरी संग्रहक जोड़ना


फिर हमें संग्रहक के लिए एक सार्थक विवरण निर्दिष्ट करने की आवश्यकता है, संग्रहक के निष्पादन योग्य फ़ाइल (Executable) का सटीक स्थान, और फिर उस संग्रहक से जुड़े फ़ाइल एक्सटेंशन (बिना डॉट के)।

यदि हमारे पास एकाधिक एक्सटेंशन हैं, तो उन्हें बिना किसी स्पेस के केवल एक अल्पविराम (Comma) द्वारा अलग करें।

नया बाहरी संग्रहक जोड़ना

ध्यान दें: Double Commander दोहरे एक्सटेंशन (जैसे, "tar.gz", "tar.xz" आदि) का समर्थन करता है, उन्हें एक्सटेंशन सूची के आरंभ में रखा जाना चाहिए (यानी "tar.gz" को "gz" से पहले रखें)।

4.2. बाहरी संग्रहक के साथ इंटरफ़ेस करने के लिए चर (Variables)

जैसा कि पहले उल्लेख किया गया है, हमें यह कॉन्फ़िगर करने की आवश्यकता है कि हमारे इच्छित कार्यों को निष्पादित करने के लिए बाहरी संग्रहक निष्पादन योग्य फ़ाइल को कैसे कॉल किया जाए।

ऐसा करने में हमारी मदद करने के लिए, Double Commander हमें कई समर्पित चर प्रदान करता है जिनका उपयोग हम विभिन्न क्रियाओं के कॉन्फ़िगरेशन स्ट्रिंग्स को भरने के लिए कर सकते हैं।

नीचे दी गई तालिका उपयोग किए जा सकने वाले चरों और उनके स्थान पर प्रतिस्थापित होने वाले मानों को दिखाती है:

कमांड परिभाषा
चर अभिव्यक्तिअर्थ
%P
संग्रहक का लंबा नाम (जैसा कि "Archiver" कुंजी में दिखाया गया है)
%p
संग्रहक का छोटा नाम (जैसा कि "Archiver" कुंजी में दिखाया गया है)
%A
संग्रह फ़ाइल का लंबा नाम
%a
संग्रह फ़ाइल का छोटा नाम
%L
फ़ाइल सूची का नाम।
फ़ाइल सूची वह फ़ाइल होती है जिसमें बाहरी संग्रहक द्वारा संसाधित की जाने वाली फ़ाइलों के नाम होते हैं।
फ़ाइल नाम लंबे होते हैं।
%l
छोटे फ़ाइल नामों वाली फ़ाइल सूची फ़ाइल
%F
संसाधित की जाने वाली एकल फ़ाइल का नाम।
सभी फ़ाइल नामों के संसाधित होने तक संग्रहक को बार-बार निष्पादित किया जाएगा।
इस चर का उपयोग केवल तब किया जाना चाहिए जब लक्षित संग्रहक कमांड लाइन पर फ़ाइल सूची का समर्थन नहीं करता है।
%V
वॉल्यूम आकार (बहु-वॉल्यूम संग्रहों के लिए)
%W
पासवर्ड
%E<errorlevel>
स्वीकार्य अधिकतम कमांड त्रुटि स्तर (Error level)।
उदाहरण के लिए, %E2 इंगित करता है कि त्रुटि स्तर 0, 1 और 2 सभी स्वीकार्य हैं।
इस चर को कमांड में कहीं भी निर्दिष्ट किया जा सकता है।
यदि यह अनुपस्थित है, तो केवल त्रुटि स्तर 0 को ही सफलता माना जाता है।
%O<modifier>
डिफ़ॉल्ट रूप से, Double Commander संग्रहक के आउटपुट को OEM एन्कोडिंग से UTF-8 में बदल देता है।
एन्कोडिंग को ओवरराइड करने के लिए इस विकल्प का उपयोग करें। संभावित एन्कोडिंग संशोधकों के लिए नीचे देखें।
इसे केवल "सूची" (List) क्रिया के साथ उपयोग किया जा सकता है।
%R
संग्रह में लक्षित उपनिर्देशिका
{}
यदि कुछ चर कर्ली कोष्ठकों में घिरे हैं - तो वे केवल तब जोड़े जाएंगे जब उस चर में गैर-खाली सामग्री होगी।
%S
यह चर उस स्थान को निर्दिष्ट करता है जहाँ अतिरिक्त कमांड लाइन पैरामीटर जोड़े जा सकते हैं, जिन्हें फ़ाइल पैकेजिंग संवाद में दर्ज किया गया है।

चिंता न करें, बेहतर ढंग से समझने के लिए हम आगे कुछ उदाहरण प्रदान करेंगे।

4.3. बाहरी संग्रहक के चरों के लिए संशोधक (Modifiers)

ये संशोधक चरों के तुरंत बाद बिना किसी स्पेस के निर्दिष्ट किए जा सकते हैं।

चर संशोधक
संशोधक अक्षरअर्थ
F
फ़ाइल सूची में केवल फ़ाइलें शामिल करें (%L और %l चरों के साथ उपयोग किया जा सकता है)
Q
स्पेस वाले नामों को उद्धरण चिह्नों (Quotes) में लपेटें
q
सभी नामों को उद्धरण चिह्नों में लपेटें
W
केवल नाम का उपयोग करें, पथ के बिना
P
केवल पथ का उपयोग करें, नाम के बिना
A
Windows में ANSI सिस्टम एन्कोडिंग या Unix जैसे सिस्टम में डिफ़ॉल्ट सिस्टम एन्कोडिंग का उपयोग करें (सामान्यतः GNU/Linux वितरणों में UTF-8); इसे %L और %O चरों के साथ उपयोग किया जा सकता है
U
UTF-8 एन्कोडिंग का उपयोग करें; इसे %L और %O चरों के साथ उपयोग किया जा सकता है

फिर से, चिंता न करें, हम आगे उदाहरण देंगे।

4.4. कॉन्फ़िगर करना: "सूची" (List) क्रिया

यदि हम चाहते हैं कि Double Commander कंप्रेस्ड संग्रहों को इस प्रकार संभाले जैसे कि वे निर्देशिका हों, तो हमें संग्रह में मौजूद फ़ाइलों की सूची प्राप्त करने में सक्षम होना चाहिए।

इस बिंदु पर, हमें फ़ाइलों को डीकंप्रेस (Extract) करने की आवश्यकता नहीं है! नहीं, यह केवल इसमें शामिल सामग्री को सूचीबद्ध करने के लिए है, ताकि Double Commander इसे हमें दिखा सके।

हमारे "rar.exe" उदाहरण में, यदि हम इसके दस्तावेज़ों को देखें, तो "v" कमांड हमें कंसोल एप्लिकेशन "rar.exe" से संग्रह में फ़ाइलों की सूची आउटपुट करने की अनुमति देता है:

rar.exe: स्टार्टअप विकल्प


इसलिए, एप्लिकेशन के उपयोग के अनुसार, संग्रह की सामग्री सूची प्राप्त करने के लिए हमें "rar.exe" को "v" कमांड और फिर संग्रह का नाम देकर कॉल करना होगा।

आइए पहले मैन्युअल रूप से परीक्षण करें, फ़ाइल "E:\Temp\just.rar" की सामग्री प्रदर्शित करने का प्रयास करते हैं:

rar.exe: टर्मिनल में फ़ाइल सूची प्राप्त करना


तो अब हमें "सूची" (List) क्रिया को कॉन्फ़िगर करने की आवश्यकता है ताकि Double Commander को यह बताया जा सके कि संपीड़ित संग्रह की सामग्री प्राप्त करने के लिए "rar.exe" को कैसे कॉल किया जाए।

ऐसा करने के लिए, हम वही चीज़ फिर से लिखेंगे जो हमने अभी की है, लेकिन ऊपर वर्णित चरों और उनके संशोधकों का उपयोग करेंगे।

यह कुछ इस तरह दिखेगा:

क्रिया: सूची

हमने %P v %AQ लिखा है, जिसमें ऊपर वर्णित चरों और संशोधकों का उपयोग किया गया है।

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

जब हम आंतरिक कमांड cm_OpenArchive का उपयोग करते हैं, तो इस सुविधा का उपयोग किया जाएगा।

"सूची के रूप में बिना एक्सटेंशन के संग्रह नाम का उपयोग करें" विकल्प के बारे में कुछ नोट: यह विकल्प उन संग्रहों (Bzip2, XZ आदि) पर लागू होता है जिनमें केवल एक फ़ाइल हो सकती है और फ़ाइल नाम बिना एक्सटेंशन के संग्रह नाम के बराबर होता है। ऐसे कंप्रेस्ड फ़ाइलों में आमतौर पर मूल फ़ाइल का नाम शामिल नहीं होता है।

4.5. सामग्री सूची पुनर्प्राप्त करना

अब तक हमने जो किया है, वह संग्रहक को संग्रह में फ़ाइलों की सूची आउटपुट करने की अनुमति देगा।

लेकिन यह सब कुछ नहीं है! हमें इस आउटपुट डेटा को पुनर्प्राप्त करने और इसे पैनल में प्रदर्शित करने की आवश्यकता है।

इसलिए हमें Double Commander को इस आउटपुट तालिका की व्याख्या करने की आवश्यकता है जो संग्रहक कमांड द्वारा आउटपुट की जाएगी।

4.5.1. विश्लेषण किए जाने वाले क्षेत्र को सीमित करना

जैसा कि हमने पिछले स्क्रीनशॉट में देखा है, "rar.exe" का आउटपुट केवल कच्चा डेटा नहीं है।

इसमें कुछ परेशान करने वाली जानकारी होती है जिसे हटाने और केवल वास्तविक फ़ाइल सूची को रखने की आवश्यकता होती है।

सौभाग्य से, हम एक जादुई स्ट्रिंग कॉन्फ़िगर कर सकते हैं ताकि Double Commander अगली पंक्ति को पार्स करने से पहले उस स्ट्रिंग के दिखाई देने की प्रतीक्षा करे।

इसके अतिरिक्त, हम पार्सिंग को रोकने के लिए भी एक जादुई स्ट्रिंग कॉन्फ़िगर कर सकते हैं।

चूंकि डेटा के पहले और बाद में दोनों तरफ डैश लाइन्स हैं, इसलिए डैश लाइन्स का उपयोग करके इन दोनों मापदंडों को सेट करना आसान है:

क्रिया: सूची प्रारंभ/समाप्त

यदि बाहरी संग्रहक बिना किसी अतिरिक्त लाइनों के सीधे कच्चा डेटा आउटपुट करता है, तो बस दोनों फ़ील्ड खाली छोड़ दें।

कैरेट चिह्न ("^") इंगित करता है कि जादुई स्ट्रिंग बिल्कुल पंक्ति की शुरुआत में होनी चाहिए, उसके आगे कुछ भी नहीं होना चाहिए। अन्यथा, पाठ पंक्ति में कहीं भी हो सकता है।

यदि यह निर्धारित करना संभव नहीं है कि यह पंक्ति की शुरुआत से है, उदाहरण के लिए यदि बाहरी संग्रहक पंक्ति की शुरुआत में दिनांक और समय दिखाता है और उसके बाद एक स्थिर स्ट्रिंग दिखाता है, तो हम जादुई स्ट्रिंग को उस स्थिर स्ट्रिंग पर सेट करेंगे, लेकिन कैरेट चिह्न नहीं जोड़ेंगे, जो Double Commander को यह निर्देश देता है कि इस स्ट्रिंग को किसी भी स्थान पर खोजा जा सकता है।

यदि "सूची समाप्त" स्ट्रिंग फ़ाइल नाम के साथ भ्रमित हो सकती है, तो यह संग्रह सामग्री के प्रसंस्करण को समय से पहले रोक सकती है।

यही कारण है कि, यदि संभव हो, तो यह निर्दिष्ट करना सबसे अच्छा है कि स्ट्रिंग पंक्ति की शुरुआत से ही होनी चाहिए।

इसके अतिरिक्त, यदि कोई ऐसा तरीका है जिससे "सूची समाप्त" स्ट्रिंग को स्थिर रखते हुए यथासंभव लंबा सेट किया जा सके, तो यह भविष्य में किसी भी भ्रम से बचने के लिए बेहतर और सुरक्षित होगा।

4.5.2. सामग्री सूची को पार्स करना

अब Double Commander जानता है कि फ़ाइल सूची प्राप्त करने के लिए किस डेटा को पार्स करना है।

फ़ाइल सूची प्राप्त करने के लिए "RAR" आउटपुट को पार्स करने के लिए एक विशिष्ट सबरूटीन लिखना आसान हो सकता था।

लेकिन Double Commander ऐसा नहीं करता है।

इसके बजाय, यह हमें स्वयं पार्सिंग तालिका को कॉन्फ़िगर करने की अनुमति देकर अत्यधिक लचीलापन प्रदान करता है!

यह थोड़ा अधिक जटिल हो सकता है, लेकिन दूसरी ओर, यह हमें अधिकतम लचीलापन देता है जिससे हम उन बाहरी संग्रहकों का भी उपयोग कर सकते हैं जिनके बारे में Double Commander के डेवलपर्स को पता भी नहीं है!

संग्रहक द्वारा उत्पन्न आउटपुट तालिका को पार्स करने में हमारी सहायता करने के लिए, हमारे पास अक्षरों द्वारा दर्शाए गए विभिन्न अभिव्यक्तियाँ होंगी।

4.5.3. पार्सिंग के लिए मानक सिंटैक्स

नीचे दी गई तालिका बाहरी संग्रहक द्वारा उत्पन्न सामग्री सूची को पार्स करने के लिए उपयोग किया जाने वाला "मानक सिंटैक्स" दिखाती है।

जैसा कि हम अगले उदाहरण में देखेंगे, "मानक सिंटैक्स" मूल रूप से "उन्नत सिंटैक्स" की तुलना में अधिक प्रत्यक्ष प्रतिस्थापन पर आधारित है।

यदि संभव हो, तो हम इस सिंटैक्स का उपयोग करने का प्रयास करेंगे क्योंकि यह अगले "उन्नत सिंटैक्स" की तुलना में तेज़ी से पार्स करता है।

मानक सिंटैक्स पार्सिंग
अभिव्यक्तिअर्थ
n
फ़ाइल नाम
z
बिना कंप्रेस किया हुआ आकार (Uncompressed size)
c
फ़ाइल विवरण (Comment)
p
पैक किया हुआ आकार (Packed size)
d
दिन (Day)
t
महीना (Month)
TTT
तीन अक्षरों का महीने का नाम (Jan, Feb, Mar, ...)
y
वर्ष (Year)
h
घंटा (Hour)
H
घंटा संशोधक अक्षर (a – पूर्वाह्न/AM समय, p – अपराह्न/PM समय)
m
मिनट (Minute)
s
सेकंड (Second)
a
विशेषताएं (Attributes)
e
फ़ाइल एक्सटेंशन
?
एक प्रतीक छोड़ें (Skip one character)
*
पहले स्पेस या पंक्ति के अंत तक सब छोड़ें
+
पंक्ति के अंत में नाम फ़ील्ड के लिए: पंक्ति के अंत तक सभी वर्णों का उपयोग करें

यदि संग्रहक प्रत्येक फ़ाइल की जानकारी प्रदर्शित करने के लिए एकाधिक पंक्तियों का उपयोग करता है, तो हमें पार्सिंग के लिए तदनुरूप पंक्तियों की संख्या निर्दिष्ट करनी होगी (Double Commander अधिकतम 50 पंक्तियों का समर्थन करता है)।

4.5.4. मानक सिंटैक्स का उदाहरण

यहाँ कुंजी "सूची प्रारूप" (List format) स्ट्रिंग लिखने के लिए उपरोक्त तालिका के अभिव्यक्तियों का उपयोग करना है, जो Double Commander को बाहरी संग्रहक को संभालने के लिए कॉन्फ़िगर करेगी ताकि वह संग्रह की सामग्री प्राप्त कर सके, जिसमें निर्देशिका और फ़ाइल नाम, फ़ाइल का आकार, विशेषताएं, फ़ाइल की तिथि आदि शामिल हैं।

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

यहाँ उदाहरण है:

सूची प्रारूप: मानक सिंटैक्स उदाहरण

जैसा कि हम देख सकते हैं, हमने पार्सिंग अभिव्यक्ति अक्षर लिखे हैं जो बाहरी संग्रहक के आउटपुट में संग्रह की सामग्री की स्थिति से पूरी तरह मेल खाते हैं:

हमें पंक्ति की शुरुआत में 4 स्पेस को भी छोड़ना होगा, जिसके लिए हम "????" का उपयोग करते हैं।

इस प्रकार कॉन्फ़िगर करने के बाद, यदि हम पैनल में अपने पहले के "just.rar" संग्रह को चुनते हैं और उसमें प्रवेश करने के लिए Enter दबाते हैं जैसे कि वह एक सामान्य निर्देशिका हो, तो हम देखेंगे कि फ़ाइल सामग्री यह दिखाती है कि हमारा तरीका मूल रूप से प्रभावी है (यदि हम अंतिम फ़ाइल को अनदेखा करें...):

संग्रह देखना: मानक सिंटैक्स उदाहरण

4.5.5. पार्सिंग के लिए उन्नत सिंटैक्स

नीचे दी गई तालिका बाहरी संग्रहक द्वारा उत्पन्न सामग्री सूची को पार्स करने के लिए उपयोग किया जाने वाला "उन्नत सिंटैक्स" दिखाती है।

इस सिंटैक्स के तत्वों को संसाधित होने में पिछली तालिका के तत्वों की तुलना में थोड़ा अधिक समय लगता है।

इसलिए इनका उपयोग केवल तब करें जब पिछली विधि से समस्याग्रस्त मामलों का समाधान न हो पा रहा हो।

अगले अनुभाग में इसके उपयोग का उदाहरण दिया जाएगा।

उन्नत सिंटैक्स पार्सिंग
अभिव्यक्तिअर्थ
+
उन नाम फ़ील्ड के लिए जो पंक्ति के अंत में नहीं हैं: अगले स्पेस तक सभी वर्णों का उपयोग करें
+
किसी भी संख्यात्मक फ़ील्ड के बाद: पहले गैर-अंक वर्ण तक सभी अंकों का उपयोग करें
n+
पंक्ति के अंत तक के सभी वर्णों का फ़ाइल नाम के रूप में उपयोग करें
z+
पहले गैर-अंक वर्ण तक के सभी अंकों का असंपीड़ित आकार के रूप में उपयोग करें
p+
पहले गैर-अंक वर्ण तक के सभी अंकों का पैक किए गए आकार के रूप में उपयोग करें
$
अगले वर्ण या पंक्ति के अंत तक सभी रिक्त स्थान/टैब छोड़ें
\
डेटा अगली पंक्ति में जारी रहता है (अधिकतम 2 पंक्तियों का समर्थन)
x
सटीक रूप से 1 स्पेस; यदि इस स्थान पर कोई भिन्न वर्ण है, तो पूरी पंक्ति को अनदेखा कर दिया जाएगा
z=1024
असंपीड़ित आकार को दिए गए मान से गुणा करें (यहाँ: 1024)
p=1024
पैक किए गए आकार को दिए गए मान से गुणा करें (यहाँ: 1024)

4.5.6. उन्नत सिंटैक्स का उदाहरण

"मानक सिंटैक्स" का उदाहरण एक अच्छा अनुमान था, लेकिन यह सही नहीं था।

कुछ ऐसे मामले हैं जहाँ यह ठीक से काम नहीं करेगा।

बड़ी फ़ाइलों के लिए, फ़ाइल का आकार अपेक्षा से अधिक चौड़ा हो सकता है, इसलिए हमारी पहली सूची बनाने की कोशिश विफल हो जाएगी।

हमारी फ़ाइल 007 Skyfall.TS को देखें।

हम देख सकते हैं कि यह उचित जानकारी प्रदर्शित नहीं कर रही है। आइए तुलना करें:

संग्रह देखना: उचित जानकारी

तो हम देखते हैं कि फ़ाइल नाम, फ़ाइल का आकार, तिथि आदि जैसी जानकारी गलत है।

आइए इस समस्याग्रस्त स्थिति को हल करने के लिए "उन्नत सिंटैक्स" के तत्वों का उपयोग करें।

इसे काम करने का तरीका यहाँ दिया गया है, भले ही आउटपुट फ़ील्ड हमेशा *बिल्कुल* समान चौड़ाई के न हों:

सूची प्रारूप

यह थोड़ा जटिल है, लेकिन इसका वर्णन करना आसान है, और अंततः हम देखेंगे कि इसे बनाना उतना कठिन नहीं है।

यहाँ रंगीन विवरण दिया गया है, जो हमें प्रत्येक छोटे ब्लॉक के पार्सिंग की कल्पना करने में मदद करेगा:

सूची प्रारूप: उन्नत सिंटैक्स उदाहरण

तो इस "सूची प्रारूप" स्ट्रिंग का उपयोग करके, हम फिर से परीक्षण कर सकते हैं और बड़ी फ़ाइलों के लिए भी सही परिणाम प्राप्त कर सकते हैं:

संग्रह देखना: उन्नत सिंटैक्स उदाहरण

4.6. कॉन्फ़िगर करना: "निकालें" (Extract) क्रिया

पूर्व में उल्लिखित चरों और संशोधकों का उपयोग करके, यह वह लाइन है जो कॉन्फ़िगर करती है कि चयनित संग्रह से फ़ाइलों या सभी फ़ाइलों को "निकालने" के लिए बाहरी संग्रहक को कैसे कॉल किया जाए।

अपने "rar.exe" उदाहरण को जारी रखते हुए, हम इसके दस्तावेज़ों से जानते हैं कि "e" कमांड का उपयोग इंगित करता है कि हम फ़ाइलों या फ़ाइलों के समूह को निकालना चाहते हैं।

"rar.exe" के साथ, हम मापदंडों में निकाली जाने वाली फ़ाइलों की सूची भी प्रदान कर सकते हैं।

इसलिए, हम Double Commander द्वारा प्रदान किए गए %L चर का लाभ उठाएंगे, जो एक टेक्स्ट फ़ाइल बनाएगा जिसमें सक्रिय पैनल से चयनित प्रत्येक निकाली जाने वाली फ़ाइल शामिल होगी, और इस एकल सूची फ़ाइल को पैरामीटर के रूप में पास करेगा।

यहाँ वह पंक्ति है जिसे हमने "rar.exe" के साथ निष्कर्षण के लिए कॉन्फ़िगर किया है:

क्रिया: निकालें

इस उदाहरण का विवरण इस प्रकार है:

जब हम पूरी सामग्री, एकल फ़ाइल आदि को निकालने के लिए संग्रह चुनते हैं, तो यह कमांड कॉल की जाएगी।

हम शायद महसूस न करें, लेकिन जब हम संग्रह में "प्रवेश" करते हैं जैसे कि वह एक निर्देशिका हो, और हम संग्रह में किसी फ़ाइल की सामग्री देखने के लिए F3 दबाते हैं, तो यह "निकालें" क्रिया पृष्ठभूमि में होगी। चयनित फ़ाइल को इस मोड का उपयोग करके अस्थायी फ़ाइलों की सिस्टम निर्देशिका में निकाला जाएगा, और फिर हम F3 द्वारा कॉल किए गए व्यूअर का उपयोग करके उस अस्थायी फ़ाइल को देखेंगे।

जब हम आंतरिक कमांड cm_ExtractFiles का उपयोग करते हैं, तो इस सुविधा का उपयोग किया जाएगा।

4.7. कॉन्फ़िगर करना: "जोड़ें" (Add) क्रिया

पूर्व में उल्लिखित चरों और संशोधकों का उपयोग करके, यह वह लाइन है जो कॉन्फ़िगर करती है कि चयनित संग्रह में फ़ाइलों को "पैक" करने या सभी फ़ाइलों को जोड़ने के लिए बाहरी संग्रहक को कैसे कॉल किया जाए।

अपने "rar.exe" उदाहरण को जारी रखते हुए, हम इसके दस्तावेज़ों से जानते हैं कि "a" कमांड का उपयोग इंगित करता है कि हम संग्रह बनाना चाहते हैं या मौजूदा संग्रह में फ़ाइलें जोड़ना चाहते हैं।

"rar.exe" के साथ, हम मापदंडों में जोड़ी जाने वाली फ़ाइलों की सूची भी प्रदान कर सकते हैं।

इसलिए, हम Double Commander द्वारा प्रदान किए गए %L चर का लाभ उठाएंगे, जो एक टेक्स्ट फ़ाइल बनाएगा जिसमें सक्रिय पैनल से चयनित प्रत्येक फ़ाइल शामिल होगी जिसे संग्रह में जोड़ा जाना है, और इस एकल सूची फ़ाइल को पैरामीटर के रूप में पास करेगा।

यहाँ वह पंक्ति है जिसे हमने "rar.exe" के साथ संग्रह निर्माण या जोड़ने के लिए कॉन्फ़िगर किया है:

क्रिया: जोड़ें

इस उदाहरण का विवरण इस प्रकार है:

जब हम एक या फ़ाइलों के समूह का चयन करते हैं और "RAR" बाहरी संग्रहक का उपयोग करके उन्हें पैक करने का अनुरोध करते हैं, तो यह कमांड कॉल की जाएगी।

जब हम आंतरिक कमांड cm_PackFiles का उपयोग करते हैं, तो इस सुविधा का उपयोग किया जाएगा।

4.8. कॉन्फ़िगर करना: "删除" (Delete/हटाएं) क्रिया

कुछ प्रकार के कंप्रेस्ड संग्रह प्रारूप सीधे संग्रह फ़ाइल के भीतर से फ़ाइलों को हटाने की संभावना का समर्थन करते हैं।

यदि यह सुविधा समर्थित है, तो हम Double Commander को यह निर्देश देने के लिए कॉन्फ़िगर कर सकते हैं कि इस कार्य को करने के लिए बाहरी संग्रहक को कैसे कॉल किया जाए।

इस कमांड का उपयोग करने का विशिष्ट मामला तब होता है जब हम संग्रह में प्रवेश करते हैं, उसमें एक फ़ाइल का चयन करते हैं और उसे हटाने के लिए क्लिक करते हैं।

यदि यह "हटाएं क्रिया" (Delete action) कॉन्फ़िगर की गई है, तो इसका उपयोग उस कार्य के लिए किया जाएगा।

कृपया ध्यान दें कि यह क्रिया बाहरी संग्रहक कॉन्फ़िगरेशन के दूसरे टैब पर स्थित है।

अपने "rar.exe" उदाहरण को जारी रखते हुए, यहाँ इस क्रिया को कॉन्फ़िगर करने का तरीका दिया गया है:

क्रिया: हटाएं

इस उदाहरण का विवरण इस प्रकार है:

4.9. कॉन्फ़िगर करना: "परीक्षण" (Test) क्रिया

कुछ संग्रहक संग्रह फ़ाइल की अखंडता (Integrity) को सत्यापित करने की अनुमति देते हैं ताकि यह सुनिश्चित हो सके कि उसमें कोई त्रुटि नहीं है और वह क्षतिग्रस्त नहीं है।

यदि यह सुविधा समर्थित है, तो हम Double Commander को यह निर्देश देने के लिए कॉन्फ़िगर कर सकते हैं कि इस कार्य को करने के लिए बाहरी संग्रहक को कैसे कॉल किया जाए।

अपने "rar.exe" उदाहरण को जारी रखते हुए, यहाँ इस क्रिया को कॉन्फ़िगर करने का तरीका दिया गया है:

क्रिया: परीक्षण

इस उदाहरण का विवरण इस प्रकार है:

जब हम आंतरिक कमांड cm_TestArchive का उपयोग करते हैं, तो इस सुविधा का उपयोग किया जाएगा।

यदि कोई त्रुटि नहीं है, तो परीक्षण विंडो बंद हो जाएगी। यदि कोई त्रुटि है, तो निम्न त्रुटि संदेश दिखाई देगा:

परीक्षण संग्रह: त्रुटि संदेश

4.10. कॉन्फ़िगर करना: "无路径解压" (बिना पथ के निकालें) क्रिया

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

हालाँकि, जब संग्रहक इसका समर्थन करता है, तो निर्देशिका संरचना को पुनर्जीवित किए बिना सभी फ़ाइलों को एक ही स्थान पर निकालना कभी-कभी उपयुक्त होता है।

यही वह जगह है जहाँ "बिना पथ के निकालें" (Extract without path) क्रिया का उपयोग किया जाता है।

उदाहरण के लिए "rar.exe" का उपयोग करते हुए, इस कार्य को करने के लिए कमांड निम्न रूप में लिखी जाएगी:

क्रिया: बिना पथ के निकालें

इस उदाहरण का विवरण इस प्रकार है:

जब हम संग्रह निकालने का अनुरोध करते हैं, तो यह विकल्प संवाद में दिखाई देगा:

संग्रहीत पथनामों को अनपैक करना

4.11. कॉन्फ़िगर करना: "स्व-निकालने वाला संग्रह बनाएं" (Create self-extracting archive) क्रिया

कुछ संग्रहक "स्व-निकालने वाले" (Self-extracting / SFX) कंप्रेस्ड संग्रह बना सकते हैं।

इसका अर्थ यह है कि प्रसंस्करण के अंत में हमें एक निष्पादन योग्य फ़ाइल (.exe) मिलेगी, जिसे चलाने पर वह अपने भीतर की सामग्री को स्वचालित रूप से निकाल देगी।

यह तब उपयोगी होता है जब हम यह सुनिश्चित करना चाहते हैं कि जिस व्यक्ति को कंप्रेस्ड फ़ाइल की सामग्री की आवश्यकता है, उसे निकालने में कोई समस्या न हो: उसे कुछ भी स्थापित करने की आवश्यकता नहीं है, बस फ़ाइल चलाएं और सामग्री अनपैक हो जाएगी!

आमतौर पर, इस क्रिया का कॉन्फ़िगरेशन "जोड़ें" (Add) क्रिया के समान ही होता है, बस हमें एक अतिरिक्त पैरामीटर जोड़ना होता है जो यह दर्शाता है कि हम चाहते हैं कि अंतिम परिणाम स्व-निकालने वाला हो।

उदाहरण के लिए, हमारे "rar.exe" उदाहरण में यही स्थिति है। इस क्रिया को कॉन्फ़िगर करने का तरीका यहाँ दिया गया है:

क्रिया: स्व-निकालने वाला संग्रह बनाएं

इस उदाहरण का विवरण इस प्रकार है:

स्व-निकालने वाली फ़ाइल बनाने की प्रक्रिया सामान्य कंप्रेस्ड फ़ाइल बनाने के समान ही है, जैसे कि आंतरिक कमांड cm_PackFiles का उपयोग करना, लेकिन दिखाई देने वाले संवाद में हम "स्व-निकालने वाला संग्रह बनाएं" विकल्प को चेक करेंगे।

स्व-निकालने वाला संग्रह बनाएं

4.12. कॉन्फ़िगर करना: "ID"

हम Double Commander को फ़ाइल एक्सटेंशन की उपेक्षा करने और फ़ाइल की आंतरिक सामग्री द्वारा कंप्रेस्ड संग्रह का पता लगाने का प्रयास करने के लिए कॉन्फ़िगर कर सकते हैं, और फिर ऊपर वर्णित उपयुक्त सूची और अनपैक कमांड को कॉल कर सकते हैं।

यही वह जगह है जहाँ हम आंतरिक कमांड cm_OpenArchive का उपयोग करेंगे।

इस सुविधा का एक उदाहरण तब होता है जब हम स्व-निकालने वाली .exe फ़ाइल की वास्तविक सामग्री को बिना उसे चलाए देखना चाहते हैं।

दूसरा उदाहरण एक अलग फ़ाइल एक्सटेंशन के साथ सहेजे गए संग्रह को देखना है, जैसे कि Microsoft Word की .docx फ़ाइल, जो वास्तव में एक संपीड़ित ZIP फ़ाइल है।

मूल रूप से, हम Double Commander को संग्रह के प्रकार की पहचान करने के लिए चयनित फ़ाइल में विशिष्ट स्थानों पर रणनीतिक डेटा पैटर्न खोजने के लिए कॉन्फ़िगर कर सकते हैं।

हम इन पैटर्नों को "ID" कहेंगे, और यह अनुभाग उन्हें कॉन्फ़िगर करने के बारे में है।

हमारे पास तीन सेटिंग्स हैं: ID, ID स्थिति (ID Position) और ID खोज सीमा (ID Search Range)।

हम Double Commander को यह निर्देश देंगे कि संग्रह के प्रकार की पहचान करने के लिए विशिष्ट ID पैटर्न कहाँ खोजे जाएं, और फिर पहचानी गई संग्रह प्रकार से संबंधित कॉन्फ़िगर किए गए कमांड का उपयोग करें।

आइए एक सरल उदाहरण से शुरू करें। नीचे 7-Zip संग्रह की शुरुआत का स्नैपशॉट है:

7-Zip फ़ाइल का उदाहरण

अन्य 7-Zip फ़ाइलों को देखकर, हम पाते हैं कि पहले छह बाइट हमेशा अनुक्रम 0x37 0x7A 0xBC 0xAF 0x27 0x1C होते हैं।

इसलिए, हम इसका लाभ उठाएंगे और Double Commander को कॉन्फ़िगर करेंगे कि जब वह इस अनुक्रम से शुरू होने वाली फ़ाइल देखे, तो मान ले कि वह फ़ाइल एक 7-Zip संग्रह है।

यह वही है जो हम निम्नलिखित कॉन्फ़िगरेशन के साथ करते हैं:

7-Zip ID

हमें ID को स्पेस द्वारा अलग किए गए 2-अंकीय हेक्साडेसिमल संख्याओं के रूप में लिखना होगा।

ID स्थिति (वैकल्पिक) संग्रह में ID की स्थिति है। यदि यह उपस्थित नहीं है, तो ID को संग्रह के आरंभ में खोजा जाएगा। हम "-" प्रतीक का उपयोग करके स्थिति को परिभाषित कर सकते हैं: इस मामले में, स्थिति फ़ाइल के अंत से गिनी जाएगी। विशेष मान <SeekID> ID की खोज को निर्धारित करता है (यदि यह ID स्थिति के संख्यात्मक मान पर नहीं मिलती है)। यह "0 .. फ़ाइल आकार" या "0 .. ID खोज सीमा" की सीमा में खोज करता है। मान दशमलव (12345) या हेक्साडेसिमल (0x3039) में लिखे जा सकते हैं। नकारात्मक मानों के लिए, 0xFFFFFFFF (-1) प्रतीक का उपयोग किया जाता है।

ID खोज सीमा (वैकल्पिक) <SeekID> परिभाषित होने पर ID खोजने के लिए बाइट्स की संख्या है। डिफ़ॉल्ट रूप से यह 1 MB होती है।

ध्यान दें: उपरोक्त सभी पैरामीटर एकाधिक मानों को परिभाषित कर सकते हैं। हम इन एकाधिक मानों को अल्पविराम (Comma) द्वारा अलग कर सकते हैं।

हमारे 7-Zip संग्रह के उदाहरण में, ID और ID स्थिति (0, क्योंकि यह फ़ाइल के आरंभ में है) ही पर्याप्त हैं।

इसलिए, जब हम आंतरिक कमांड cm_OpenArchive को कॉल करते हैं, तो Double Commander फ़ाइल सामग्री को स्कैन करेगा, और यदि फ़ाइल ऑफ़सेट 0 पर "0x37 0x7A 0xBC 0xAF 0x27 0x1C" पैटर्न की पहचान की जाती है, तो यह इसे हमारे द्वारा कॉन्फ़िगर किए गए 7Z प्रकार की फ़ाइल के रूप में संभालेगा, और फिर पहचानी गई संग्रह प्रकार से संबंधित कॉन्फ़िगर किए गए कमांड और मापदंडों का उपयोग करके सूची बनाने, निकालने आदि की कार्रवाई करेगा।

अधिकांश मामलों में, फ़ाइल को हेक्साडेसिमल रूप में जाँचने की आवश्यकता नहीं होती है: फ़ाइल हस्ताक्षर प्रारूप विनिर्देशों में पाए जा सकते हैं या मौजूदा सूचियों, डेटाबेस या उपयोगिताओं का उपयोग करके पाए जा सकते हैं (उदाहरण के लिए, यह विकिपीडिया पृष्ठ या FreeDesktop.org MIME डेटाबेस)।

4.13. डीबग करना (Debugging)

बाहरी संग्रहक का उपयोग करने के लिए उपरोक्त कदम आमतौर पर पर्याप्त होते हैं, लेकिन किसी भी स्थिति के लिए हमारे पास कुछ और विकल्प हैं:

यदि सेटिंग्स में लॉग विंडो का प्रदर्शन अक्षम है, तो इसे जबरन प्रदर्शित किया जाएगा और Double Commander बंद होने पर छिपा दिया जाएगा। संदेशों को लॉग फ़ाइल में सहेजा नहीं जाएगा।

4.14. "अन्य" बटन मेनू

इस मेनू में कई अतिरिक्त सुविधाएं शामिल हैं:

5. संबद्ध अनुप्रयोगों में संग्रह फ़ाइलें खोलना

डिफ़ॉल्ट रूप से, जिन फ़ाइलों के एक्सटेंशन WCX प्लगइन्स और बाहरी संग्रहक सेटिंग्स में निर्दिष्ट होते हैं, वे फ़ोल्डर के रूप में खुलती हैं। उन्हें संबद्ध अनुप्रयोग (Associated application) में खोलने के लिए, हम फ़ाइल के संदर्भ मेनू में "खोलें" (Open) आइटम का उपयोग कर सकते हैं (लेकिन इस मामले में केवल सिस्टम फ़ाइल संबद्धता का उपयोग किया जाएगा) या हम वांछित क्रिया को "कार्रवाई" (Actions) मेनू में जोड़ सकते हैं।

डबल-क्लिक या Enter कुंजी का उपयोग करने के लिए, हमें सेटिंग्स बदलनी होगी।

हम केवल सेटिंग्स से एक्सटेंशन हटा सकते हैं, लेकिन इस मामले में कमांड cm_OpenArchive और cm_ExtractFiles अनुपलब्ध हो जाएंगे। दूसरा तरीका:

ऐसी फ़ाइलों के लिए, Double Commander सामान्य संग्रह आइकन के बजाय संबद्ध आइकन (Associated icon) का उपयोग करेगा।


Valid HTML 4.0 Transitional CSS Valid!