Instantly share code, notes, and snippets.
Created
May 4, 2020 07:46
-
Star
(0)
0
You must be signed in to star a gist -
Fork
(0)
0
You must be signed in to fork a gist
-
Save kthy/8b9fbf2a6a7dfa84ae8d6db3d36810f9 to your computer and use it in GitHub Desktop.
Display a string of text in extra large letters, similar to banner printing on a dot matrix printer.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@ECHO OFF&SETLOCAL | |
:: | |
:: From https://ss64.com/nt/syntax-banner.html | |
:: | |
IF [%1] NEQ [] goto s_start | |
ECHO Syntax | |
ECHO BANNER string | |
ECHO Where string is the text or numbers to be displayed | |
ECHO: | |
GOTO :eof | |
:s_start | |
SET _length=0 | |
SET _sentence=%* | |
:: Get the length of the sentence | |
SET _substring=%_sentence% | |
:s_loop | |
IF not defined _substring GOTO :s_result | |
::remove the first char from _substring (until it is null) | |
SET _substring=%_substring:~1% | |
SET /A _length+=1 | |
GOTO s_loop | |
:s_result | |
SET /A _length-=1 | |
:: Truncate text to fit the window size | |
:: assuming average char is 6 digits wide | |
for /f "tokens=2" %%G in ('mode ^|find "Columns"') do set/a _window=%%G/6 | |
IF %_length% GTR %_window% set _length=%_window% | |
:: Step through each digit of the sentence and store in a set of variables | |
FOR /L %%G IN (0,1,%_length%) DO call :s_build %%G | |
:: Now ECHO all the variables | |
ECHO: | |
ECHO:%_1% | |
ECHO:%_2% | |
ECHO:%_3% | |
ECHO:%_4% | |
ECHO:%_5% | |
ECHO:%_6% | |
ECHO:%_7% | |
ECHO: | |
GOTO :EOF | |
:s_build | |
:: get the next character | |
CALL SET _digit=%%_sentence:~%1,1%%% | |
:: Add the graphics for this digit to the variables | |
IF "%_digit%"==" " (CALL :s_space) ELSE (CALL :s_%_digit%) | |
GOTO :EOF | |
:: Pad digits to --> | |
:s_0 | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% # #) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_1 | |
:: Pad digits to --> | |
(SET _1=%_1% ## ) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_2 | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% #) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_3 | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% #) | |
(SET _3=%_3% #) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% #) | |
(SET _6=%_6% #) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_4 | |
:: Pad digits to --> | |
(SET _1=%_1% # #) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% #) | |
(SET _6=%_6% #) | |
(SET _7=%_7% #) | |
GOTO :EOF | |
:s_5 | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_6 | |
:: Pad digits to --> | |
(SET _1=%_1% ## ) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_7 | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% #) | |
(SET _4=%_4% ##) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% # ) | |
GOTO :EOF | |
:s_8 | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_9 | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% #) | |
(SET _6=%_6% #) | |
(SET _7=%_7% #) | |
GOTO :EOF | |
:s_- | |
:: Pad digits to --> | |
(SET _1=%_1% ) | |
(SET _2=%_2% ) | |
(SET _3=%_3% ) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% ) | |
(SET _6=%_6% ) | |
(SET _7=%_7% ) | |
GOTO :EOF | |
:s_. | |
:: Pad digits to --> | |
(SET _1=%_1% ) | |
(SET _2=%_2% ) | |
(SET _3=%_3% ) | |
(SET _4=%_4% ) | |
(SET _5=%_5% ) | |
(SET _6=%_6% ) | |
(SET _7=%_7% # ) | |
GOTO :EOF | |
:s_a | |
:: Pad digits to --> | |
(SET _1=%_1% ## ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% # #) | |
GOTO :EOF | |
:s_b | |
:: Pad digits to --> | |
(SET _1=%_1% ### ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ### ) | |
GOTO :EOF | |
:s_c | |
:: Pad digits to --> | |
(SET _1=%_1% ## ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ## ) | |
GOTO :EOF | |
:s_d | |
:: Pad digits to --> | |
(SET _1=%_1% ### ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% # #) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ### ) | |
GOTO :EOF | |
:s_e | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% ### ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_f | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% ### ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% # ) | |
GOTO :EOF | |
:s_g | |
:: Pad digits to --> | |
(SET _1=%_1% ## ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ##) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ## ) | |
GOTO :EOF | |
:s_h | |
:: Pad digits to --> | |
(SET _1=%_1% # #) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% ####) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% # #) | |
GOTO :EOF | |
:s_i | |
:: Pad digits to --> | |
(SET _1=%_1% # ) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% # ) | |
GOTO :EOF | |
:s_j | |
:: Pad digits to --> | |
(SET _1=%_1% ####) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% ## ) | |
GOTO :EOF | |
:s_k | |
:: Pad digits to --> | |
(SET _1=%_1% # ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # # ) | |
(SET _4=%_4% ## ) | |
(SET _5=%_5% ## ) | |
(SET _6=%_6% # # ) | |
(SET _7=%_7% # #) | |
GOTO :EOF | |
:s_l | |
:: Pad digits to --> | |
(SET _1=%_1% # ) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% ####) | |
GOTO :EOF | |
:s_m | |
:: Pad digits to ---> | |
(SET _1=%_1% # #) | |
(SET _2=%_2% ## ##) | |
(SET _3=%_3% # # #) | |
(SET _4=%_4% # # #) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% # #) | |
GOTO :EOF | |
:s_n | |
:: Pad digits to ---> | |
(SET _1=%_1% # #) | |
(SET _2=%_2% ## #) | |
(SET _3=%_3% ## #) | |
(SET _4=%_4% # # #) | |
(SET _5=%_5% # ##) | |
(SET _6=%_6% # ##) | |
(SET _7=%_7% # #) | |
GOTO :EOF | |
:s_o | |
:: Pad digits to --> | |
(SET _1=%_1% ## ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% # #) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ## ) | |
GOTO :EOF | |
:s_p | |
:: Pad digits to --> | |
(SET _1=%_1% ### ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% ### ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% # ) | |
GOTO :EOF | |
:s_q | |
:: Pad digits to --> | |
(SET _1=%_1% ## ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% # #) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # ##) | |
(SET _7=%_7% # #) | |
GOTO :EOF | |
:s_r | |
:: Pad digits to --> | |
(SET _1=%_1% ### ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% ### ) | |
(SET _5=%_5% # # ) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% # #) | |
GOTO :EOF | |
:s_s | |
:: Pad digits to --> | |
(SET _1=%_1% ###) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% ## ) | |
(SET _5=%_5% #) | |
(SET _6=%_6% #) | |
(SET _7=%_7% ### ) | |
GOTO :EOF | |
:s_t | |
:: Pad digits to --> | |
(SET _1=%_1% ###) | |
(SET _2=%_2% # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% # ) | |
GOTO :EOF | |
:s_u | |
:: Pad digits to --> | |
(SET _1=%_1% # #) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% # #) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # #) | |
(SET _7=%_7% ## ) | |
GOTO :EOF | |
:s_v | |
:: Pad digits to ---> | |
(SET _1=%_1% # #) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # #) | |
(SET _4=%_4% # #) | |
(SET _5=%_5% # #) | |
(SET _6=%_6% # # ) | |
(SET _7=%_7% # ) | |
GOTO :EOF | |
:s_w | |
:: Pad digits to -----> | |
(SET _1=%_1% # # #) | |
(SET _2=%_2% # # #) | |
(SET _3=%_3% # # #) | |
(SET _4=%_4% # # #) | |
(SET _5=%_5% # # #) | |
(SET _6=%_6% # # #) | |
(SET _7=%_7% ## ## ) | |
GOTO :EOF | |
:s_x | |
:: Pad digits to --> | |
(SET _1=%_1% ) | |
(SET _2=%_2% # #) | |
(SET _3=%_3% # # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # # ) | |
(SET _7=%_7% # #) | |
GOTO :EOF | |
:s_y | |
:: Pad digits to ---> | |
(SET _1=%_1% # #) | |
(SET _2=%_2% # # ) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% # ) | |
GOTO :EOF | |
:s_z | |
:: Pad digits to ---> | |
(SET _1=%_1% #####) | |
(SET _2=%_2% #) | |
(SET _3=%_3% # ) | |
(SET _4=%_4% # ) | |
(SET _5=%_5% # ) | |
(SET _6=%_6% # ) | |
(SET _7=%_7% #####) | |
GOTO :EOF | |
:s_space | |
:: Pad digits to ---> | |
(SET _1=%_1% ) | |
(SET _2=%_2% ) | |
(SET _3=%_3% ) | |
(SET _4=%_4% ) | |
(SET _5=%_5% ) | |
(SET _6=%_6% ) | |
(SET _7=%_7% ) | |
GOTO :EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment