2014-12-08 48 views
0

我一直在用批处理文件搞乱了一点,并且运行了这段代码。我没有写,我发现它,它只是在命令提示符下运行随机蓝色数字,直到你退出。我的问题是这个,我想做一个每个角色都是随机颜色的人。所以基本上,它会看起来像彩虹呕吐在我的屏幕上。但我离题了。这是我的挑战,迄今为止我没有解决它。任何想法都会很棒!在矩阵批处理文件中使用多种颜色

@echo off 
color 01 
cls 
:a 
set /a a=%random% 
if %a% geq 16384 set /a aa=1 
if %a% lss 16384 set /a aa=0 
set /a b=%random% 
if %b% geq 16384 set /a bb=1 
if %b% lss 16384 set /a bb=0 
set /a c=%random% 
if %c% geq 16384 set /a cc=1 
if %c% lss 16384 set /a cc=0 
set /a d=%random% 
if %d% geq 16384 set /a dd=1 
if %d% lss 16384 set /a dd=0 
set /a e=%random% 
if %e% geq 16384 set /a ee=1 
if %e% lss 16384 set /a ee=0 
set /a f=%random% 
if %f% geq 16384 set /a ff=1 
if %f% lss 16384 set /a ff=0 
set /a g=%random% 
if %g% geq 16384 set /a gg=1 
if %g% lss 16384 set /a gg=0 
set /a h=%random% 
if %h% geq 16384 set /a hh=1 
if %h% lss 16384 set /a hh=0 
set /a i=%random% 
if %i% geq 16384 set /a ii=1 
if %i% lss 16384 set /a ii=0 
set /a j=%random% 
if %j% geq 16384 set /a jj=1 
if %j% lss 16384 set /a jj=0 
set /a k=%random% 
if %k% geq 16384 set /a kk=1 
if %k% lss 16384 set /a kk=0 
set /a l=%random% 
if %l% geq 16384 set /a ll=1 
if %l% lss 16384 set /a ll=0 
set /a m=%random% 
if %m% geq 16384 set /a mm=1 
if %m% lss 16384 set /a mm=0 
set /a n=%random% 
if %n% geq 16384 set /a nn=1 
if %n% lss 16384 set /a nn=0 
set /a o=%random% 
if %o% geq 16384 set /a oo=1 
if %o% lss 16384 set /a oo=0 
set /a p=%random% 
if %p% geq 16384 set /a pp=1 
if %p% lss 16384 set /a pp=0 
set /a q=%random% 
if %q% geq 16384 set /a qq=1 
if %q% lss 16384 set /a qq=0 
set /a r=%random% 
if %r% geq 16384 set /a rr=1 
if %r% lss 16384 set /a rr=0 
set /a s=%random% 
if %s% geq 16384 set /a ss=1 
if %s% lss 16384 set /a ss=0 
set /a t=%random% 
if %t% geq 16384 set /a tt=1 
if %t% lss 16384 set /a tt=0 
set /a u=%random% 
if %u% geq 16384 set /a uu=1 
if %u% lss 16384 set /a uu=0 
set /a v=%random% 
if %v% geq 16384 set /a vv=1 
if %v% lss 16384 set /a vv=0 
set /a w=%random% 
if %w% geq 16384 set /a ww=1 
if %w% lss 16384 set /a ww=0 
set /a x=%random% 
if %x% geq 16384 set /a xx=1 
if %x% lss 16384 set /a xx=0 
set /a y=%random% 
if %y% geq 16384 set /a yy=1 
if %y% lss 16384 set /a yy=0 
set /a z=%random% 
if %z% geq 16384 set /a zz=1 
if %z% lss 16384 set /a zz=0 
echo %aa% %bb% %cc% %dd% %ee% %ff% %gg% %hh% %ii% %jj% %kk% %ll% %mm% %nn% %oo% %pp% %qq% %rr% %ss% %tt% %uu% %vv% %ww% %xx% %yy% %zz% 
goto a 
+0

所以你想要做同样的事情,但每个角色都有不同的颜色? – npocmaka 2014-12-08 09:10:54

+0

[请参阅此问题](http://stackoverflow.com/q/4339649/1683264),了解用于打印各种颜色字符的几种可能的解决方案。 – rojo 2014-12-08 18:32:23

回答

1

我不知道,如果你得到它,但是我有同样的想法 并决定查一查我无法找到任何东西,但如何利用色彩等在这里随机数发生器是我得到的

@echo off 
SETLOCAL EnableDelayedExpansion 
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a" 
) 
:a-0a0 
set eddie=%time:~-2% 
set first=%eddie:~0,1% 
if %first%==0 set eddie=%eddie:~1,1% 
set /a eddie=(%eddie%%%9) 
call :ColorText 0%eddie% " %random%" 
goto a-0a0 
pause >null 

:ColorText 
<nul set /p ".=%DEL%" > "%~2" 
findstr /v /a:%1 /R "^$" "%~2" nul 
del "%~2" > nul 2>&1