2013-06-05 12 views
58

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

बेशक, यदि विंडोज़ base64 उपकरण जैसे लिनक्स बॉक्स में कुछ था तो मेरा काम बहुत आसान होगा। हालांकि, चूंकि यह बस वहां नहीं है, क्या बैच फ़ाइलों का उपयोग कर बेस 64 सामग्री पूरी तरह से को डीकोड करने का कोई तरीका है? और मैं इसे कैसे पूरा करूं?

किसी भी मदद की सराहना की जाती है।

(यह सिर्फ एक प्रयोग है, तो मैं अक्षमता और तरह के बारे में चिंतित नहीं हूँ।)

+0

इसके अलावा इस जाँच से बाहर: http://f2ko.de/en/b64.php –

उत्तर

121

वास्तव में विंडोज एक उपयोगिता है कि encodes और बेस 64 डीकोड है - certutil

मुझे यकीन है कि नहीं कर रहा हूँ क्या विंडोज़ के संस्करण ने इस कमांड को पेश किया।

एक फ़ाइल सांकेतिक शब्दों में बदलना करने के लिए:

certutil -encode inputFileName encodedOutputFileName 

एक फ़ाइल को डिकोड करने के लिए:

certutil -decode encodedInputFileName decodedOutputFileName 

उपलब्ध क्रिया और certutil के लिए उपलब्ध विकल्पों में से एक नंबर रहे हैं।

certutil -encode -? 

लगभग सभी क्रियाओं के लिए पूरी मदद पाने के लिए: (उदाहरण के लिए -encode)

certutil -? 

एक विशेष क्रिया पर मदद प्राप्त करने के:

लगभग सभी उपलब्ध क्रियाओं की एक सूची प्राप्त करने के लिए :

certutil -v -? 

रहस्यमय तरीके से, -encodehex क्रियासाथ सूचीबद्ध नहीं है,या certutil -v -?। लेकिन यह certutil -encodehex -? का उपयोग करके वर्णित है। यह एक और आसान काम है :-)

+6

[certutil] (http://technet.microsoft.com/library/cc732443.aspx) के आसपास पर बाद से किया गया कम से कम [विंडोज सर्वर 2003] (http://msdn.microsoft.com/en-us/subscriptions/cc773087.aspx)। –

+23

मैंने कुछ अच्छी बाधाओं को दिया होगा कि "बेस 64 में बैच" सबसे सख्त चीज थी जिसे मैंने कभी भी खोज इंजन –

+0

में दर्ज किया था और अभी तक हम हैं! –

4

यहां एक बैच फ़ाइल है, जिसे base64encode.bat कहा जाता है, जो बेस 64 को एन्कोड करता है।

@echo off 
if not "%1" == "" goto :arg1exists 
echo usage: base64encode input-file [output-file] 
goto :eof 
:arg1exists 
set base64out=%2 
if "%base64out%" == "" set base64out=con 
(
    set base64tmp=base64.tmp 
    certutil -encode "%1" %base64tmp% > nul 
    findstr /v /c:- %base64tmp% 
    erase %base64tmp% 
) > %base64out%