标题: [特效代码] 这个不断改变cmd窗口前景和背景色的代码错在哪里? [打印本页]
作者: 悬崖之树 时间: 2012-7-11 19:28 标题: 这个不断改变cmd窗口前景和背景色的代码错在哪里?
本帖最后由 悬崖之树 于 2012-7-11 20:02 编辑
我的代码是:- @echo off
- mode con cols=20 lines=20
- cls
- set str=********************
- for /l %%i in (1 1 10) do (
- echo %str%
- )
- :ks
- set /a m=%random%%%16 &set /a n=%random%%%16
- if %m%==10 set m=a
- if %m%==11 set m=b
- if %m%==12 set m=c
- if %m%==13 set m=d
- if %m%==14 set m=e
- if %m%==15 set m=f
- if %n%==10 set n=a
- if %m%==11 set n=b
- if %n%==12 set n=c
- if %n%==13 set n=d
- if %n%==14 set n=e
- if %n%==15 set n=f
- if %m%==%n% goto ks
- color %m%%n%
- pause>nul & goto ks
复制代码
但是没有达到我预期的效果,前面几次变色是正确的,可是后面就出现文字了,但是我的代码没有输出文字啊!
希望大侠们给出解决方案。
还有这个改进版的:- @echo off
- mode con cols=20 lines=20
-
- :loop
- cls
- set str=********************
- for /l %%i in (1 1 10) do (
- echo %str%
- )
- :ks
- set /a m=%random%%%16 &set /a n=%random%%%16
- if %m%==10 set m=a
- if %m%==11 set m=b
- if %m%==12 set m=c
- if %m%==13 set m=d
- if %m%==14 set m=e
- if %m%==15 set m=f
- if %n%==10 set n=a
- if %m%==11 set n=b
- if %n%==12 set n=c
- if %n%==13 set n=d
- if %n%==14 set n=e
- if %n%==15 set n=f
- if %m%==%n% goto ks
- color %m%%n%
- pause>nul & goto loop
复制代码
就好了很多,但是偶尔仍旧会出现文字。到底是为什么呢?
作者: lky216 时间: 2012-7-11 20:08
这个有个代码很简单的,就是写的比较少。但忘记了。
作者: apang 时间: 2012-7-11 20:13
晕,第19行中的%m%应为%n%
作者: 悬崖之树 时间: 2013-1-14 18:21
回复 2# lky216
看看下面的代码,是你要找的吗?- @echo off
- setlocal enabledelayedexpansion
- mode con cols=20 lines=20
-
- set str=********************
- for /l %%i in (1 1 10) do (
- echo %str%
- )
- :loop
- set str=0123456789ABCDEF
- set /a i=%random%%%15
- set /a j=%random%%%15
- if %i%==%j% goto loop
- set /a i=!str:~%i%,1!
- set /a j=!str:~%j%,1!
- color %i%%j%
- ping /n 1 127.0.0.1>nul
- goto loop
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |