Board logo

标题: [已结]随机颜色变换为何只能显示一种颜色? [打印本页]

作者: hackerscans     时间: 2009-1-1 10:59    标题: [已结]随机颜色变换为何只能显示一种颜色?

请看代码:
@echo off & setlocal  ENABLEDELAYEDEXPANSION
  for /L %%i in (1,1,100) do (set /a n+=1
   cls
   @echo !n!
   ping 127.1 -n 1 >nul
   color %random:~0,2%)

问题:我想让颜色随着数字的改变而改变。但是为什么这种情况下却始终一个颜色呢? 是不是我开启了延迟变量?

谢谢解答

[ Last edited by HAT on 2009-1-1 at 21:31 ]
作者: HAT     时间: 2009-1-1 11:07
把@echo off删除,最后加个pause,看看执行过程就明白了。
作者: hackerscans     时间: 2009-1-1 12:41
按照HAT版主的做了,为什么颜色没有随即改变呢?请指教。
作者: tireless     时间: 2009-1-1 14:39
call color %%random:~0,2%%
作者: terse     时间: 2009-1-1 17:40
这个 用 !n!
到下面怎么用 %呢
作者: HAT     时间: 2009-1-1 18:15    标题: Re 3楼

因为我告诉你的只是找出问题的方法,解决问题的方法你可以自己先想想。
作者: hackerscans     时间: 2009-1-1 21:29
首先谢谢各位高手的指教。
正如楼上各位所说,我的这个color 没有设置变量延迟,从而导致一种颜色。
可以把% 换成 ! 也可以加上call来实现延迟。  

请各位赐教。
作者: netbenton     时间: 2009-1-2 01:28
学习了:
我以为只有 set n=!n:~1,2!
原来还可以: coror !n:~1,2!