中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 10:46
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 新问题:goto是否能用在for循环中? 查看 1,099 回复 6
楼 主 新问题:goto是否能用在for循环中? 发表于 2008-03-30 20:59 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
goto语句是不是不能在for循环中使用啊(不出本循环),如果能用,要怎么使用啊?
批处理之家新域名:www.bathome.net
2 发表于 2008-03-30 21:05 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
这种问题当然要自己试验啦
3 发表于 2008-03-31 13:34 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
for循环里面不能嵌套label的,以前有讨论,处理办法是if或者call出来。
4 发表于 2008-03-31 18:12 ·  中国 广东 珠海 电信
初级用户
★★
积分 97
发帖 51
注册 2008-03-19 15:26
18年会员
UID 113404
性别 男
状态 离线
参考脚本:

@echo off

for /l %%i in (1,1,3) do call :demo

pause>nul&exit

:demo
echo.被循环调用..
goto :eof
5 发表于 2008-03-31 18:28 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
楼上的已经出本循环了
6 发表于 2010-04-16 19:16 ·  中国 广东 广州 电信
初级用户
★★
积分 89
发帖 76
注册 2009-12-13 13:41
16年会员
UID 156499
性别 男
状态 离线
这是我的一帖子的代码 ,不知道有没有错 ,但代码可以运行。
@echo off
cd.>_bat.txt
for %%c in (*.*) do (
set nc=%%c
if "!nc!"=="%~nx0" goto b
echo ------------------ >>_bat.txt
echo %%c: >>_bat.txt
echo. >>_bat.txt
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (%%c) do (
set mu=%%i
if not "!mu!"=="" echo %%i>>_bat.txt
)
:b
echo.
)
echo ------------------ >>_bat.txt
echo. >>_bat.txt
echo %~nx0 >>_bat.txt
type %~xn0 >>_bat.txt
pause
7 发表于 2010-04-16 19:44 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
Originally posted by gool123456 at 2010-4-16 19:16:
这是我的一帖子的代码 ,不知道有没有错 ,但代码可以运行。
@echo off
cd.>_bat.txt
for %%c in (*.*) do (
set nc=%%c
if "!nc!"=="%~nx0" goto b
ec ...

这样用setlocal enabledelayedexpansion,会很容易造成超出最大递归层的.
论坛跳转: