中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 02:43
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]随机颜色变换为何只能显示一种颜色? 查看 1,023 回复 7
楼 主 [已结]随机颜色变换为何只能显示一种颜色? 发表于 2009-01-01 10:59 ·  中国 山东 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
请看代码:
@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 ]
2 发表于 2009-01-01 11:07 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
把@echo off删除,最后加个pause,看看执行过程就明白了。
3 发表于 2009-01-01 12:41 ·  中国 山东 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
按照HAT版主的做了,为什么颜色没有随即改变呢?请指教。
4 发表于 2009-01-01 14:39 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
call color %%random:~0,2%%
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +2 2009-01-01 21:32
5 发表于 2009-01-01 17:40 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
这个 用 !n!
到下面怎么用 %呢
简单!简单!再简单!
6 Re 3楼 发表于 2009-01-01 18:15 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
因为我告诉你的只是找出问题的方法,解决问题的方法你可以自己先想想。
7 发表于 2009-01-01 21:29 ·  中国 山东 潍坊 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
首先谢谢各位高手的指教。
正如楼上各位所说,我的这个color 没有设置变量延迟,从而导致一种颜色。
可以把% 换成 ! 也可以加上call来实现延迟。

请各位赐教。
8 发表于 2009-01-02 01:28 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
学习了:
我以为只有 set n=!n:~1,2!
原来还可以: coror !n:~1,2!
论坛跳转: