|
scriptor
银牌会员
    
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『楼 主』:
不能执行set
我的程序是:
@echo off
for /l %%a in (1,1,4) do (
set /a n+=1
for /l %%b in (1,1,%n%) do (
echo hello,world )
)
pause
我运行了一下,可就是没有预期的效果。
n 还是一直为零。
也就是说,set 这个循环没有执行,请高手看看 怎么回事?
|
|
2006-12-31 02:59 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
2 楼』:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /l %%a in (1,1,4) do (
set /a n+=1
for /l %%b in (1,1,!n!) do (
echo hello,world )
)
pause
这样试试行不行
|
|
2006-12-31 03:06 |
|
|
scriptor
银牌会员
    
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
|
2006-12-31 03:11 |
|
|
ccwan
金牌会员
     
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
4 楼』:
是这样吗?
@echo off
for /l %%a in (1,1,4) do set/a n+=1
for /l %%b in (1,1,%n%) do (
echo hello,world
)
pause
|

三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2006-12-31 03:13 |
|
|
lxmxn
版主
       
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
5 楼』:
再来一个演示代码:
@echo off&SETLOCAL ENABLEDELAYEDEXPANSION&&(for,/l,%%a,in,(1,1,40),do,(set/a n+=1&(for,/l,%%b,in,(1,1,!n!),do,(set/p=%%b<nul))&echo.))&pause
|
|
2006-12-31 03:18 |
|
|
lxmxn
版主
       
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
6 楼』:
Quote: | Originally posted by ccwan at 2006-12-30 14:13:
是这样吗?
@echo off
for /l %%a in (1,1,4) do set/a n+=1
for /l %%b in (1,1,%n%) do (
echo hello,world
)
pause |
|
这不是楼主要的效果吧?
|
|
2006-12-31 03:20 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
7 楼』:
好的呀,显示了十次
[set /a n+=1]==[%%a]呵呵,可以省略掉了
@echo off
for /l %%i in (1,1,4) do (
for /l %%l in (1,1,%%i) do (
echo hello,world)
)
|
|
2006-12-31 03:21 |
|
|
ccwan
金牌会员
     
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
8 楼』:
呵呵,不错。
|

三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2006-12-31 03:22 |
|
|
scriptor
银牌会员
    
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
9 楼』:
还是不对阿
我分析一下啊
%%a 有4次
那么 n 也就会循环到4
这样%%b 就会 从1到4进行循环
最后的结果应该是
第一次输出1个
第二次输出2个
。。。
。。。
那么总共输出1+2+3+4=10个“hello,world”
俄哦要的就是这个效果
可是你的只有四次,你的set 执行了四次,最后n=4
而没有n=1,2,3的情况使得%%b循环,以至于达不到我要的结果
|
|
2006-12-31 03:23 |
|
|
scriptor
银牌会员
    
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
10 楼』:
everest79
不错,效果是有了
但是你避开了set的有效循环,我既要效果,还有解决set在循环体内部的循环问题
你的真的很不错
我为什么就没有想到
但是我在其他的编程时,同样要碰到set的循环问题,
所以我还是要使得set能够循环
|
|
2006-12-31 03:26 |
|
|
ccwan
金牌会员
     
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
11 楼』:
|

三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2006-12-31 03:27 |
|
|
everest79
金牌会员
      一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
12 楼』:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /l %%a in (1,1,4) do (
set /a n+=1
for /l %%b in (1,1,!n!) do (
echo hello,world )
)
pause
这是发2楼的
|
|
2006-12-31 03:28 |
|
|
ccwan
金牌会员
     
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
13 楼』:
最近越来越不明白大家都在干什么,有什么目的了。
可能我太不适合待下去了,准备潜水……
|

三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2006-12-31 03:29 |
|
|
scriptor
银牌会员
    
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
14 楼』:
2楼的
我调适了
不通过
谢谢大家
|
|
2006-12-31 03:36 |
|
|
scriptor
银牌会员
    
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
15 楼』:
ccwan
对不起哦
我不是说你的不行
只是我真的想要set 能在for 中循环
谢谢
我很佩服你的
真的
不要不理我们这帮菜鸟
呵呵
|
|
2006-12-31 03:38 |
|