Dekodowanie base64 w partii
Próbuję stworzyć instalator używając batch. Oczywiście instalator musi składać się z plików, które zostaną zainstalowane, więc myślę o kodowaniu plików w base64, i po prostu je dekodować i zapisywać do miejsca docelowego.
Oczywiście, Moja praca byłaby bardzo łatwa, gdyby Windows miał coś w rodzaju narzędzia base64
, które zawierają Linux boxes. Jednak, ponieważ po prostu go nie ma, czy jest jakiś sposób, aby dekodować zawartość base64 CAŁKOWICIE za pomocą plików wsadowych? A jak ja osiągnąć to?
(to tylko eksperyment, więc nie martwię się o nieefektywność i tym podobne.)
2 answers
W rzeczywistości Windows ma narzędzie, które koduje i dekoduje base64-CERTUTIL
Nie jestem pewien, która wersja systemu Windows wprowadziła to polecenie.
Aby zakodować plik:
certutil -encode inputFileName encodedOutputFileName
Aby rozszyfrować plik:
certutil -decode encodedInputFileName decodedOutputFileName
Istnieje wiele dostępnych czasowników i opcji dostępnych dla CERTUTIL.
Aby uzyskać listę prawie wszystkich dostępnych czasowników:
certutil -?
Aby uzyskać pomoc na konkretny czasownik (- encode na przykład):
certutil -encode -?
Aby uzyskać pełną pomoc dla prawie wszystkie czasowniki:
certutil -v -?
Tajemniczo, -encodehex
czasownik nie jest wymieniony z certutil -?
lub certutil -v -?
. Ale jest to opisane za pomocą certutil -encodehex -?
. Jest to kolejna przydatna funkcja: -)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-26 13:41:51
Oto plik wsadowy o nazwie base64encode.bat, który koduje 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%
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-30 19:55:48