2013-06-05 19 views
58

バッチを使用してインストーラを作成しようとしています。もちろん、インストーラーはインストールされるファイルで構成する必要があるので、私はbase64でファイルをエンコードすることを考えています。単純にデコードして、それらのファイルを宛先に書き出します。base64をバッチでデコードする

もちろん、WindowsにLinuxボックスに含まれるbase64ツールのようなものがあれば、私の仕事は非常に簡単です。しかし、単純にそこに存在しないので、base64のコンテンツをデコードする方法はありません完全にバッチファイルを使用していますか?そして、私はこれをどのように達成するでしょうか?

何か助けていただければ幸いです。

(それはちょうど実験ですので、私は非効率性などについて心配していない。)

+0

また、このチェックアウト:http://f2ko.de/en/b64.php –

答えて

121

実際にWindowsがエンコードし、BASE64をデコードするユーティリティを持っている - のcertutil

私はわからないんだけどWindowsのバージョンでこのコマンドが導入されました。利用可能動詞とのcertutilに利用可能なオプションの数があります

certutil -decode encodedInputFileName decodedOutputFileName 

:ファイルをデコードするには

certutil -encode inputFileName encodedOutputFileName 

:ファイルをエンコードするために

。特定の動詞(例えば-encode)に関するヘルプを表示するには

certutil -? 

certutil -encode -? 

ほぼすべての動詞のための完全なヘルプを表示するには、ほぼすべての可能な動詞のリストを取得するには

certutil -v -? 

不思議、-encodehex動詞はに記載されていませんまたは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 in batch"は、検索エンジンで入力したことの中で最も必死だったものです。 –

+0

まだここにあります! –

4

base64をエンコードする、base64encode.batと呼ばれるバッチファイルがあります。

@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% 
関連する問題