中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 半夜写了一个数字循环,不知道为什么不能输出
作者:
标题: 半夜写了一个数字循环,不知道为什么不能输出 上一主题 | 下一主题
yiyuncao007
初级用户





积分 110
发帖 45
注册 2008-1-25
状态 离线
『楼 主』:  半夜写了一个数字循环,不知道为什么不能输出

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就退出了,

2008-7-1 00:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yiyuncao007
初级用户





积分 110
发帖 45
注册 2008-1-25
状态 离线
『第 2 楼』:  

FOR语句有问题吗,a是一位数,b是三位数,var是两位数,按逻辑应该要输出的呀?

2008-7-1 01:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 3 楼』:  

for /L %%var in (%%a,1,%%b) do echo %%var>> a.txt



2008-7-1 01:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yiyuncao007
初级用户





积分 110
发帖 45
注册 2008-1-25
状态 离线
『第 4 楼』:  

楼上的和我写的是一样的呀

2008-7-1 01:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 5 楼』:  

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 ]



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-7-1 03:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qianmo717
初级用户





积分 68
发帖 32
注册 2007-12-9
状态 离线
『第 6 楼』:  

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%表示的

2008-7-1 06:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  


@echo off
set a=%random:~0,1%
set b=%random:~0,3%
set v=%random:~0,2%
echo %v%
pause
for /L %%v in (%a%,1,%b%) do echo %%v
pause
1. for循环里面的控制变量只能是一位字符
2. for循环里面的控制变量这样写%%c,其他变量这样写%a%

   此帖被 +2 点积分    点击查看详情   
评分人:【 yiyuncao007 分数: +2  时间:2008-7-1 21:13




2008-7-1 10:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yiyuncao007
初级用户





积分 110
发帖 45
注册 2008-1-25
状态 离线
『第 8 楼』:  

哦,原来FOR循环里的控制变量只能用单字符表示,在DOS环境里怎么设置成这样呀,*.bat能运行了,但是我觉得输出应该是一行,结果却和我预想不一样?
V取值不是只有一次吗?

2008-7-1 20:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  

for /l %%v in (100,1,200) do echo %%v

这个和C语言是类似的

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

这次明白了否?



2008-7-1 21:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yiyuncao007
初级用户





积分 110
发帖 45
注册 2008-1-25
状态 离线
『第 10 楼』:  

汉,脑袋转不过来,HAT你这样一讲让我顿感彻悟了,色即上空,空即是色,哈

2008-7-1 21:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: