Board logo

标题: [求助]批处理编写过程中经常出现“此时不应有goto" [打印本页]

作者: doslike     时间: 2011-1-15 18:22    标题: [求助]批处理编写过程中经常出现“此时不应有goto"

经常出现这样的问题,为什么会出现?又如何解决?
作者: Hanyeguxing     时间: 2011-1-15 22:35
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 ]
作者: 726842270     时间: 2011-1-17 02:33
这么说CMD对空格的处理是在"%变量%"和"!变量!"之间了?(PS:我想也是在FOR的%%I之后吧,要不然怎么能删除空行呢)