找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26061|回复: 3

[特效代码] 这个不断改变cmd窗口前景和背景色的代码错在哪里?

[复制链接]
发表于 2012-7-11 19:28:17 | 显示全部楼层 |阅读模式
本帖最后由 悬崖之树 于 2012-7-11 20:02 编辑

我的代码是:
  1. @echo off
  2. mode con cols=20 lines=20
  3. cls
  4. set str=********************
  5. for /l %%i in (1 1 10) do (
  6. echo %str%
  7. )
  8. :ks
  9. set /a m=%random%%%16  &set /a n=%random%%%16
  10. if %m%==10 set m=a
  11. if %m%==11 set m=b
  12. if %m%==12 set m=c
  13. if %m%==13 set m=d
  14. if %m%==14 set m=e
  15. if %m%==15 set m=f
  16. if %n%==10 set n=a
  17. if %m%==11 set n=b
  18. if %n%==12 set n=c
  19. if %n%==13 set n=d
  20. if %n%==14 set n=e
  21. if %n%==15 set n=f
  22. if %m%==%n% goto ks
  23. color %m%%n%
  24. pause>nul & goto ks
复制代码
但是没有达到我预期的效果,前面几次变色是正确的,可是后面就出现文字了,但是我的代码没有输出文字啊!
希望大侠们给出解决方案。


还有这个改进版的:
  1. @echo off
  2. mode con cols=20 lines=20

  3. :loop
  4. cls
  5. set str=********************
  6. for /l %%i in (1 1 10) do (
  7. echo %str%
  8. )
  9. :ks
  10. set /a m=%random%%%16  &set /a n=%random%%%16
  11. if %m%==10 set m=a
  12. if %m%==11 set m=b
  13. if %m%==12 set m=c
  14. if %m%==13 set m=d
  15. if %m%==14 set m=e
  16. if %m%==15 set m=f
  17. if %n%==10 set n=a
  18. if %m%==11 set n=b
  19. if %n%==12 set n=c
  20. if %n%==13 set n=d
  21. if %n%==14 set n=e
  22. if %n%==15 set n=f
  23. if %m%==%n% goto ks
  24. color %m%%n%
  25. pause>nul & goto loop
复制代码
就好了很多,但是偶尔仍旧会出现文字。到底是为什么呢?
发表于 2012-7-11 20:08:04 | 显示全部楼层
这个有个代码很简单的,就是写的比较少。但忘记了。
发表于 2012-7-11 20:13:10 | 显示全部楼层
晕,第19行中的%m%应为%n%

评分

参与人数 1技术 +1 收起 理由
悬崖之树 + 1 仔细

查看全部评分

 楼主| 发表于 2013-1-14 18:21:01 | 显示全部楼层
回复 2# lky216


    看看下面的代码,是你要找的吗?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. mode con cols=20 lines=20

  4. set str=********************
  5. for /l %%i in (1 1 10) do (
  6.      echo %str%
  7. )
  8. :loop
  9. set str=0123456789ABCDEF
  10. set /a i=%random%%%15
  11. set /a j=%random%%%15
  12. if %i%==%j% goto loop
  13. set /a i=!str:~%i%,1!
  14. set /a j=!str:~%j%,1!
  15. color %i%%j%
  16. ping /n 1 127.0.0.1>nul
  17. goto loop
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 21:49 , Processed in 0.012233 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表