1. ホーム
  2. windows

[解決済み] base64を一括でデコードする

2023-03-19 11:21:03

質問

バッチを使ったインストーラを作ろうとしています。もちろん、インストーラにはインストールされるファイルが必要なので、ファイルをbase64でエンコードし、単純にデコードして書き込むことを考えています。

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

どんな助けでも感謝します。

(あくまで実験なので、非効率性などは気にしていません)

どのように解決するのか?

実は 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 -? . これも便利な機能です :-)

更新情報

David Morales 氏のコメントについてですが、このコメントには タイプオプションのドキュメントが不十分で -encodehex 動詞に、ヘッダーやフッター行のない base64 文字列の作成を可能にする、文書化されていないタイプオプションを追加しました。

certutil [Options] -encodehex inFile outFile [type]

1を指定すると、ヘッダやフッタの行を除いたbase64が出力されます。

参照 https://www.dostips.com/forum/viewtopic.php?f=3&t=8521#p56536 を参照してください。また、利用可能なフォーマットについてのより詳細な情報については https://www.dostips.com/forum/viewtopic.php?f=3&t=8521#p57918を参照してください。 .

調査されていませんが -decodehex 動詞には、オプションで末尾の型引数もあります。