简体   繁体   中英

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?

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%

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:

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM