中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 01:19
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 半夜写了一个数字循环,不知道为什么不能输出
可打印版本  827 / 9
第1楼 yiyuncao007 发表于 2008-07-01 00:52
初级用户 发帖 45 积分 110
半夜写了一个数字循环,不知道为什么不能输出
set a=%random:~0,1%
set b=%random:~0,3%
set var=%random:~0,2%
echo %var%
pause
for /L %%var in (%%a,1,%%b) do echo %%var>> a.txt
pause
一到了FOR 语句DOS就退出了,
第2楼 yiyuncao007 发表于 2008-07-01 01:00
初级用户 发帖 45 积分 110
FOR语句有问题吗,a是一位数,b是三位数,var是两位数,按逻辑应该要输出的呀?
第3楼 radem 发表于 2008-07-01 01:05
高级用户 发帖 383 积分 691
for /L %%var in (%%a,1,%%b) do echo %%var>> a.txt
第4楼 yiyuncao007 发表于 2008-07-01 01:20
初级用户 发帖 45 积分 110
楼上的和我写的是一样的呀
第5楼 pusofalse 发表于 2008-07-01 03:23
银牌会员 发帖 646 积分 1,604
c:\>for/?
%variable 指定一个单一字母可替换的参数。


set a=b
echo %a%


a是一位数,b是三位数,var是两位数。。。
你怎么知道就一定是这样。。
set b=%random:~0,3%
万一执行这句时random 扩展出的值是两位数呢。。

[ Last edited by pusofalse on 2008-7-1 at 03:25 AM ]
第6楼 qianmo717 发表于 2008-07-01 06:12
初级用户 发帖 32 积分 68
set a=%random:~0,1%
set b=%random:~0,3%
set var=%random:~0,2%
如果上面的语句得出了你想要的结果:即a是一位数....
for /L %%var in (%%a,1,%%b) do echo %%var>> a.txt
那么上面的%%a,%%b和%%var也是不对的
变量是用%a%表示的
第7楼 HAT 发表于 2008-07-01 10:00
版主 发帖 5,017 积分 9,023


1. for循环里面的控制变量只能是一位字符
2. for循环里面的控制变量这样写%%c,其他变量这样写%a%
第8楼 yiyuncao007 发表于 2008-07-01 20:38
初级用户 发帖 45 积分 110
哦,原来FOR循环里的控制变量只能用单字符表示,在DOS环境里怎么设置成这样呀,*.bat能运行了,但是我觉得输出应该是一行,结果却和我预想不一样?
V取值不是只有一次吗?
第9楼 HAT 发表于 2008-07-01 21:07
版主 发帖 5,017 积分 9,023
for /l %%v in (100,1,200) do echo %%v

这个和C语言是类似的

for (v=100;v<=200;v++){
printf("%d",v);
}

这次明白了否?
第10楼 yiyuncao007 发表于 2008-07-01 21:21
初级用户 发帖 45 积分 110
汉,脑袋转不过来,HAT你这样一讲让我顿感彻悟了,色即上空,空即是色,哈
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023