中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 07:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 问一个关于标签的很菜的问题 查看 685 回复 5
楼 主 问一个关于标签的很菜的问题 发表于 2007-04-21 01:54 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 302
发帖 138
注册 2007-03-29 02:33
19年会员
UID 83224
性别 男
状态 离线
很菜的问题
批处理脚本中标签后内容一定会运行?
比如
setlocal EnableDelayedExpansion
set a=1
if %a%==1 (set /a b=%a%+1) else (goto c)
:c
set /a b=%b%+2
echo %b%
pause

这个脚本结果是4,a=1 时执行b=1+1=2,但是脚本执行完毕后仍会执行:c的内容
我想知道标签结束的标志是什么?可否让其未满足条件后不执行标签语句?
2 发表于 2007-04-21 02:08 ·  中国 广东 广州 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
setlocal EnableDelayedExpansion
set a=1
if %a%==1 (set /a b=%a%+1) else (goto c)
pause
goto :eof
:c
set /a b=%b%+2
echo %b%
pause
3 发表于 2007-04-21 04:50 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 302
发帖 138
注册 2007-03-29 02:33
19年会员
UID 83224
性别 男
状态 离线
谢谢dikex 除了用用eof跳出程序还有其他的方法吗?
4 发表于 2007-04-21 04:51 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
将goto :eof换为exit也行

或者你将自定义标签放在最前边,行首用goto man来跳转也行
5 发表于 2007-04-21 05:10 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 302
发帖 138
注册 2007-03-29 02:33
19年会员
UID 83224
性别 男
状态 离线
goto man?能给个例子吗?不是很明白
6 发表于 2007-04-21 05:41 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 866
发帖 415
注册 2005-12-04 11:19
20年会员
UID 46459
状态 离线
setlocal EnableDelayedExpansion
set a=1
if %a%==1 (
set /a b=%a%+1
.......
) else (
set /a b=%b%+2
echo %b%
.......
)
pause
欢迎你到批处理爱好者联盟QQ群:18023953
论坛跳转: