楼 主
[求助]批处理编写过程中经常出现“此时不应有goto"
发表于 2011-01-15 18:22 · 中国 黑龙江 哈尔滨 联通
版主
★★
系统收藏家
积分 326
发帖 285
注册 2010-02-22 00:00
UID 160972
性别 男
来自 黑龙江省
状态 离线
第 2 楼
发表于 2011-01-15 22:35 · 中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
1,单独一个 goto 是不会有这样问题的
2, goto 和其他命令组合。当然和 if 组合最多。
第一种,字符比较:if %a%==1 goto b
当 %a% 为空时返回错误:此时不应有 goto
解决方法:加引号 if "%a%"=="1" goto b
第二种,数值比较:if %a% lss 1 goto b
因为要执行数值比较,所以不能加引号来避免 %a% 为空的情况
解决方法1:在这之前单独处理 %a% 为空的情况
解决方法2,使用延迟的变量,例如 if !a! lss 1 goto b
[ Last edited by Hanyeguxing on 2011-1-15 at 22:36 ]
第 3 楼
发表于 2011-01-17 02:33 · 中国 吉林 长春 电信
初级用户
★
枫中残雪
积分 65
发帖 43
注册 2010-04-29 23:20
UID 165810
性别 男
来自 吉林省长春市
状态 离线
这么说CMD对空格的处理是在"%变量%"和"!变量!"之间了?(PS:我想也是在FOR的%%I之后吧,要不然怎么能删除空行呢)
论坛跳转: