我需要在Windows操作系统上使用一个命令行在屏幕上生成特定文件的base64数据(不生成文件)。
我看到在Unix系统上是足够的使用
cat <file_name>| base64
以获取编码为base64的文件内容。
在Windows上,我无法获得相同的结果。
我找到了这个解决方案:
certutil -encode -f <file_name> tmp.b64 && findstr /v /c:- tmp.b64 && del tmp.b64
但这需要系统生成一个临时文件,因此,在最后,去销毁它。仅使用certutil
命令,屏幕上的结果会被包含不相关信息的3行所污染。
谁能帮我在Windows上提供一个只生成base64数据的命令?
更新:我改进了屏幕上的结果,通过这个新版本的命令:
certutil -encode -f <file_name> tmp.b64 && cls && findstr /v /c:- tmp.b64 && del tmp.b64
结果更符合我的要求,但我希望避免每次都创建临时文件tmp.b64
。
2条答案
按热度按时间wydwbb8l1#
我建议在你的Windows机器上安装OpenSSL。设置PATH变量后,就很容易了:
pinkon5k2#
生成base64字符串的常用windows方法是
制作任何文件(这里是简单的文本,但可以是PDF,docX或其他任何文件。
转换为base64
查看结果使用
要发送到另一个命令,请使用管道将TYPE output.txt用作输入。但是,与许多转换任务一样,它需要是文件IO。为了避免任何硬盘驱动器文件的提示,它需要一个内存文件系统。
对于循环文件夹使用一个为循环与变量,以适应
解码output.txt
答案
有一个非常小的(7.7 kB)downloadable exe c 2015,可用于对文件或控制台进行编码/解码,如下所示
在屏幕上显示结果或在管道中使用
请注意,这与上面的完全相同,但是没有更新关于为什么它可能不总是按预期工作的最新查询,但这是一个出站使用。
未决问题示例
与上述结果相比,结果不准确,但槽容量
SGVsbG8gV29ybGQhCg==
可接受所以当使用
它确实正确地报告
差异的原因是最后一个EOL
0000000C: 0A 0D
而且根据情况,可能会也可能不会有实质性的差异。另外请注意,命令行的工作长度是有限的,因此控制台的使用对于字符串处理也是有限的