2013-06-05 117 views
58

我正在嘗試使用批量進行安裝。當然,安裝程序需要包含將要安裝的文件,因此我正在考慮使用base64對文件進行編碼,並將其解碼並將其寫入目標。批量解碼base64

當然,如果Windows有像Linux包含的base64工具那樣的工作,我的工作將非常容易。但是,因爲它根本不存在,有沒有什麼辦法使用批處理文件來解碼base64內容完全?我將如何實現這一目標?

任何幫助表示讚賞。

(這只是一個實驗,所以我不擔心效率低下等。)

+0

還檢查了這一點:http://f2ko.de/en/b64.php –

回答

121

其實Windows不會有一個實用工具,編碼和解碼的base64 - CERTUTIL

我不知道是什麼Windows版本引入了這個命令。

對文件進行編碼:

certutil -encode inputFileName encodedOutputFileName 

要解碼文件:

certutil -decode encodedInputFileName decodedOutputFileName 

有許多可供CERTUTIL可用的動詞和選項。

要獲得的幾乎所有可用的動詞列表:

certutil -? 

要獲得一個特定的動詞幫助(-encode爲例):

certutil -encode -? 

要獲得完整的幫助幾乎所有動詞:

certutil -v -? 

神祕地,-encodehex動詞未列出與certutil -?certutil -v -?。但它使用certutil -encodehex -?來描述。這是另一個方便的功能:-)

+6

[CERTUTIL](http://technet.microsoft.com/library/cc732443.aspx)已經存在了,因爲在至少[Windows Server 2003](http://msdn.microsoft.com/en-us/subscriptions/cc773087.aspx)。 –

+23

我會給出一些很好的可能性,「批量生成base64」是我曾經在搜索引擎 –

+0

中輸入的最絕望的事情,但我們在這裏! –

4

這是一個批處理文件,名爲base64encode.bat,它編碼base64。

@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%