首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >批量解码base64

批量解码base64
EN

Stack Overflow用户
提问于 2013-06-06 01:02:18
回答 2查看 111.5K关注 0票数 88

我正在尝试做一个使用批处理的安装程序。当然,安装程序需要由将要安装的文件组成,所以我在考虑用base64对这些文件进行编码,然后简单地对它们进行解码并将它们写到它们的目的地。

当然,如果Windows有像Linux盒子中包含的base64工具,我的工作将会非常容易。然而,由于它根本不存在,有没有办法使用批处理文件完全解码base64内容?我该如何做到这一点呢?

任何帮助都是非常感谢的。

(这只是一个实验,所以我并不担心效率低下之类的问题。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-06 01:55:02

实际上,Windows确实有一个工具可以对base64 - CERTUTIL进行编码和解码

我不确定哪个版本的Windows引入了此命令。

对文件进行编码的步骤:

代码语言:javascript
复制
certutil -encode inputFileName encodedOutputFileName

要解码文件,请执行以下操作:

代码语言:javascript
复制
certutil -decode encodedInputFileName decodedOutputFileName

CERTUTIL有许多可用的动词和选项。

要获取几乎所有可用动词的列表,请执行以下操作:

代码语言:javascript
复制
certutil -?

要获取特定谓词的帮助(例如-encode),请执行以下操作:

代码语言:javascript
复制
certutil -encode -?

要获取几乎所有动词的完整帮助:

代码语言:javascript
复制
certutil -v -?

奇怪的是,certutil -?certutil -v -?中没有列出-encodehex动词。但它是使用certutil -encodehex -?描述的。它是另一个方便的函数:-)

更新

关于David Morales的评论,有一个指向-encodehex动词的poorly documented type option,它允许创建没有页眉或页脚行的base64字符串。

代码语言:javascript
复制
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谓词也有一个可选的尾随类型参数。

票数 174
EN

Stack Overflow用户

发布于 2017-01-31 03:55:48

这是一个编码base64的批处理文件,名为base64encode.bat。

代码语言:javascript
复制
@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%
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16945780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档