mrdorkface
mrdorkface

Reputation: 49

Randomizing text color and background color in batch file

I am attempting to make a batch file that will randomize the color code when the script is run. How would i do this?

Upvotes: 2

Views: 14173

Answers (4)

    @echo off
set /a rand1=%random% %% 16
set /a rand2=%random% %% 16
set HEX=0123456789ABCDEF
call set hexcolors=%%HEX:~%rand1%,1%%%%HEX:~%rand2%,1%%
color %hexcolors%

adding @echo off in the start section caused the text to dint show a warning message

Upvotes: 0

tinku007
tinku007

Reputation: 54

I tried to make it @ashleedawg 's code flash on screen faster..

@echo off
:start
rem mode con:cols=50 lines=12 
title Anoying lightning Strobe

Set /a num=(%Random% %%9)+1
Set /a num2=(%Random% %%9)+1
color %num%%num2%
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 

Set /a num=(%Random% %%9)+1
Set /a num2=(%Random% %%9)+1
color %num%%num2%
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 



Set /a num=(%Random% %%9)+1
Set /a num2=(%Random% %%9)+1
color %num%%num2%
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 

Set /a num=(%Random% %%9)+1
Set /a num2=(%Random% %%9)+1
color %num%%num2%
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 

Set /a num=(%Random% %%9)+1
Set /a num2=(%Random% %%9)+1
color %num%%num2%
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 
echo (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%) (%random%)(%random%) (%random%) (%random%) (%random%)(%random%) (%random%) 

goto start

And you can also do something similar with text but that will probably the only thing you do in that batch file due to nature of batch files.

@echo off
cls
echo.
echo.
echo.
echo      .########..########....#####...##.....##.##....##
echo      .##.....##.##.....##..##...##...##...##...##..##.
echo      .##.....##.##.....##.##.....##...##.##.....####..
echo      .########..########..##.....##....###.......##...
echo      .##........##...##...##.....##...##.##......##...
echo      .##........##....##...##...##...##...##.....##...
echo      .##........##.....##...#####...##.....##....##...
:colors
Set /a num=(%Random% %%9)+1
rem Set /a num2=(%Random% %%9)+1
rem color %num%%num2%
color %num%
PING 127.0.0.1 -n 1 > NUL
goto colors

You can replace proxy with your own ascii art text. commented rem lines are there to change background color and text color.

Upvotes: 0

ashleedawg
ashleedawg

Reputation: 21639

Just for the heck of it, here's a .BAT using the answer above and a couple others to create a psychedelic coloured light show (aka loop random colors with delay).

I'd call it useless, but actually it does demonstrate creative use of a few cmd line commands (written by others, slapped together by me) such as pausing under 1 second using ping.

@echo off
cls

rem prepare loop 
Set Sleep=0  
:start

rem loop 40 times
if %Sleep% == 40 ( goto end )

rem pick random numbers 1-16
set /a rand1=%random% %% 16
set /a rand2=%random% %% 16

rem user 
set HEX=0123456789ABCDEF
call set hexcolors=%%HEX:~%rand1%,1%%%%HEX:~%rand2%,1%%

rem set back/fore colors
color %hexcolors%
echo loop#%Sleep% color=%hexcolors%

rem the pings act as a split-second delay   
PING localhost -n 1 >NUL
PING localhost -n 1 >NUL

rem increment counter and loop
Set /A Sleep+=1
goto start
:end

rem close after 3 seconds
timeout /t 3


More Information:

Upvotes: 1

ByteHamster
ByteHamster

Reputation: 4951

To change the color, you need the color command. The arguments are:

color <background><text>

So generating a random color works like this:

set /a rand1=%random% %% 16
set /a rand2=%random% %% 16
set HEX=0123456789ABCDEF
call set hexcolors=%%HEX:~%rand1%,1%%%%HEX:~%rand2%,1%%
color %hexcolors%

Upvotes: 6

Related Questions