CMD批处理-将文件编码为以64为基数,并修剪字符和换行符

问题描述 投票:0回答:1

我正在尝试使用以下命令从CMD制作批处理文件:

  1. 将文件转换为基数64-使用certutil命令,基数64的内容如下所示(B64.txt):

converted B64.txt

  1. 修剪基部64-基本上,我要删除----- BEGIN CERTIFICATE ---------- END CERTIFICATE -----这部分是< [done,剩下的唯一事情是修剪newline character使其成为base64的一个衬里,因为我会将其传递给请求有效载荷。

这是我到目前为止所做的:

@ECHO OFF cd /filePath certutil -encode sample.pdf B64.txt type B64.txt | find /V "-----BEGIN CERTIFICATE-----" | find /V "-----END CERTIFICATE-----" > B64.txt

我的问题是:

  1. 使用命令

    find / V *

如何定义换行字符并将其删除?
  • 有更有效的方法吗?
  • 请露面,我对CLI还是很陌生,谢谢!

    batch-file cmd base64 newline trim
    1个回答
    0
    投票
    对于删除行,您只能使用证书,因为该单词出现在第一行和最后一行。

    [certutil + -f用于覆盖文件,如果存在

    type B64.txt^|"%__APPDIR__%find.exe" /v "CERTIFICATE"

    将忽略第一行和最后一行

    [set "_b64=!_b64!%%~b"

    将一行一行保存在同一变量/ 1行中

    [>B64.txt echo/!_b64!

    将用保存在变量中的值(一行中的b64字符串)替换/覆盖文件的内容@echo off && setlocal enabledelayedexpansion cd /d "d:\filePath" && set "_b64="<nul "%__APPDIR__%certutil.exe" -encode -f sample.pdf B64.txt >nul && for /f %%b in ( 'type B64.txt^|"%__APPDIR__%find.exe" /v "CERTIFICATE"')do set "_b64=!_b64!%%~b" >B64.txt echo/!_b64! & endlocal && exit /b
    常规布局中的相同代码:

    @echo off` setlocal enabledelayedexpansion cd /d "d:\filePath" set "_b64="<nul "%__APPDIR__%certutil.exe" -encode -f sample.pdf B64.txt >nul for /f %%b in ('type B64.txt^|"%__APPDIR__%find.exe" /v "CERTIFICATE"')do set "_b64=!_b64!%%~b" echo/!_b64!>B64.txt endlocal goto :EOF

    © www.soinside.com 2019 - 2024. All rights reserved.