中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 06:52
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 问一个关于标签的很菜的问题
可打印版本  683 / 5
第1楼 lililulula 发表于 2007-04-21 01:54
中级用户 发帖 138 积分 302
问一个关于标签的很菜的问题
很菜的问题
批处理脚本中标签后内容一定会运行?
比如
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楼 dikex 发表于 2007-04-21 02:08
高级用户 发帖 366 积分 788
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楼 lililulula 发表于 2007-04-21 04:50
中级用户 发帖 138 积分 302
谢谢dikex 除了用用eof跳出程序还有其他的方法吗?
第4楼 everest79 发表于 2007-04-21 04:51
金牌会员 发帖 1,127 积分 2,564
将goto :eof换为exit也行

或者你将自定义标签放在最前边,行首用goto man来跳转也行
第5楼 lililulula 发表于 2007-04-21 05:10
中级用户 发帖 138 积分 302
goto man?能给个例子吗?不是很明白
第6楼 htysm 发表于 2007-04-21 05:41
高级用户 发帖 415 积分 866
setlocal EnableDelayedExpansion
set a=1
if %a%==1 (
set /a b=%a%+1
.......
) else (
set /a b=%b%+2
echo %b%
.......
)
pause
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023