Вы можете использовать bat / cmd файл с c# кодом.
Затем вы скомпилируете его и запустите во время выполнения, чтобы получить все строки в одной строке. ..
1) Редактирование: cd /d "D:\Path\to\file\"
, добавление диска : \ и \ путь \ к \ вашему \ каталогу
2) Сохранить этот код ниже как файл OneLine.cmd
/* 2>nul & @cls & @echo off & title <nul & title %~nx0 & setlocal enabledelayedexpansion
cd /d "D:\Path\to\file\" && set "_b64_file=%__CD__%\B64.txt"
"%__APPDIR__%certutil.exe" -encode -f ".\sample.pdf" "!_b64_file!" >nul
for /f "tokens=*" %%c in ('%__APPDIR__%where.exe /r "c:\Windows\Microsoft.NET" csc.exe
')do >2nul >nul "%%~c" /t:exe /out:"%tmp%\OneLine.exe" "%~f0" /platform:anycpu /unsafe+ /w:0 /o /nologo && goto :next
:next
"%tmp%\OneLine.exe" & 2>nul >nul del /q /f "%tmp%\OneLine.exe" & endlocal && goto :EOF || rem :: */
using System; using System.IO;using System.Text;namespace OneLineB64 {class Program {static void Main(string[] args){
String Path = System.Environment.GetEnvironmentVariable("_b64_file");String alllines = (File.ReadAllText(Path).Replace(Environment.NewLine, ""));
alllines = alllines.Remove(0,27); alllines = alllines.Remove((alllines.Length)-25);File.WriteAllText(Path, alllines);}}}
- Тот же код в обычном форматировании / макете
/* 2>nul & @cls
@echo off
title <nul
title %~nx0
setlocal enabledelayedexpansion
cd /d "D:\Path\to\file\"
set "_b64_file=%__CD__%\B64.txt"
"%__APPDIR__%certutil.exe" -encode -f ".\sample.pdf" "!_b64_file!" >nul
for /f "tokens=*" %%c in ('%__APPDIR__%where.exe /r "c:\Windows\Microsoft.NET" csc.exe')do (
>2nul >nul "%%~c" /t:exe /out:"%tmp%\OneLine.exe" "%~f0" /platform:anycpu /unsafe+ /w:0 /o /nologo && goto :next
)
:next
"%tmp%\OneLine.exe"
2>nul >nul del /q /f "%tmp%\OneLine.exe"
endlocal
goto :EOF
*/
using System;
using System.IO;
using System.Text;
namespace OneLineB64
{
class Program
{
static void Main(string[] args)
{
String Path = System.Environment.GetEnvironmentVariable("_b64_file");
String alllines = (File.ReadAllText(Path).Replace(Environment.NewLine, ""));
alllines = alllines.Remove(0,27);
alllines = alllines.Remove((alllines.Length)-25);
File.WriteAllText(Path, alllines);
}
}
}
Класс файла
SubString / Удалить символы в строке
Получить строку переменной среды системы
Окружение. Метод GetEnvironmentVariable
Понимание максимального ограничения символов в переменной л кроме того, это невозможно сделать за пределами 8191 цифр / символов
Для удаления строк вы можете использовать только сертификат, потому что это слово присутствует в 1-й и последней строке.
certutil
+ -f
для файла перезаписи, если он существует
type B64.txt^|"%__APPDIR__%find.exe" /v "CERTIFICATE"
будет игнорироваться 1-я и последняя строка
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 set/p "'=!_b64: =!"<nul & 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"
>B64.txt set/p "'=!_b64: =!"<nul
endlocal
goto :EOF