Декодирование base64 в пакетном режиме


Я пытаюсь сделать установщик с помощью пакета. Конечно, установщик должен состоять из файлов, которые будут установлены, поэтому я думаю о кодировании файлов в base64 и просто декодировать их и записывать их в пункт назначения.

конечно, моя работа была бы очень легко, если бы окна было что-то вроде base64 инструмент, который содержит коробки Linux. Однако, поскольку его просто нет, есть ли способ декодировать содержимое base64 полностью использование пакетных файлов? И как мне это сделать?

любая помощь приветствуется.

(это просто эксперимент, так что я не беспокоюсь о неэффективности и тому подобное.)

2 62

2 ответа:

на самом деле Windows имеет утилиту, которая кодирует и декодирует base64-CERTUTIL

Я не уверен, что версия Windows представила эту команду.

для кодирования файла:

certutil -encode inputFileName encodedOutputFileName

для декодирования файла:

certutil -decode encodedInputFileName decodedOutputFileName

существует ряд доступных глаголов и опций, доступных для CERTUTIL.

чтобы получить список почти всех существующих глаголов:

certutil -?

чтобы получить помощь по конкретному глаголу (- кодировать для пример):

certutil -encode -?

чтобы получить полную помощь почти для всех глаголов:

certutil -v -?

мистическим образом,-encodehex глагол не указан с certutil -? или certutil -v -?. Но это описано с помощью certutil -encodehex -?. Это еще одна удобная функция :-)

вот пакетный файл, называемый base64encode.летучая мышь, которая кодирует в base64.

@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%