Board logo

标题: [其他] 批处理中有没有错误时跳转? [打印本页]

作者: MantisLin    时间: 2010-12-19 10:38     标题: 批处理中有没有错误时跳转?

  我们都知道在VB中有一个错误跳转语句,可以应对所有我们编程者料想不到的错误,它就是:
  1. on error resume next
复制代码

  1. on error goto xxx:
复制代码

  我想知道批处理中,有没有这样的语句。
  像那种if not %errorlevel% equ 0 ......的语句是无法满足我的需求的,因为要应对的是未知错误!

[ 本帖最后由 MantisLin 于 2010-12-19 10:44 编辑 ]
作者: powerbat    时间: 2010-12-19 16:12

No No No! 绝对不是所有!
最起码语法错误它都应对不了,有些重大错误它也无法Next
作者: ithinkican    时间: 2010-12-19 17:31

if %errorlevel% 1 goto next
作者: MantisLin    时间: 2010-12-19 17:58     标题: 回复 3楼 的帖子

呃……你这一句有很明显的语法错误!
而且是我所说的“无法满足我的需求”的那种语句!
因为未知的错误是不知道其具体位置的,
所以我不可能确定在某条语句后面加上这句if %errorlevel% equ 1 goto next

[ 本帖最后由 MantisLin 于 2010-12-19 18:09 编辑 ]
作者: MantisLin    时间: 2010-12-19 17:59     标题: 回复 2楼 的帖子

好吧,那就算是能搞定大部分错误好了,那么请问有没有这样的语句?
作者: hanyeguxing    时间: 2010-12-19 18:03     标题: 回复 4楼 的帖子

  1. if errorlevel 1 goto next
复制代码
当返回代码大于或等于1时跳到标签next处。看不出有什么语法错误

[ 本帖最后由 hanyeguxing 于 2010-12-19 18:23 编辑 ]
作者: MantisLin    时间: 2010-12-19 18:16     标题: 回复 6楼 的帖子

%errorlevel%和1之间缺少运算符
如果是要判断大于或等于的话至少加个geq吧

[ 本帖最后由 MantisLin 于 2010-12-19 18:18 编辑 ]
作者: hanyeguxing    时间: 2010-12-19 18:23

崩溃。。。把那%去了。。。
作者: MantisLin    时间: 2010-12-19 18:25     标题: 回复 8楼 的帖子

别崩溃,把%去了确实没错了
但是我上面也说了,是要预防未知错误的
莫非要我在每条语句后面都加上这么一句?
作者: hanyeguxing    时间: 2010-12-19 18:33

难道你写段代码,还句句都可能出错?
作者: MantisLin    时间: 2010-12-19 18:36     标题: 回复 10楼 的帖子

难道你写段代码,还能保证句句都不出错?
作者: zqz0012005    时间: 2010-12-19 22:08

批处理默认就是on error resume next的。
不然基本上就不会2>nul了
但是当有if,for等的语法错误时,就会与vbs一样退出整个批处理。
作者: wc726842270    时间: 2010-12-20 09:39

如果想知道错误,到CMD中运行一下不是就了解了么。如果%errorlevel%反回非0的反回值,那么不就证明上一句是有问题的么?难道LZ是想在整个P中只用一个%errorlevel%就达到像VBS那样的效果(好像有些不太可能啊),不过可以用P和VBS一起使用好像可以达到效果
作者: MantisLin    时间: 2010-12-20 11:25

  因为我做是接收用户输入,然后判断用户输入的字符串来执行各种各样的操作的
  用户的输入有无数种可能,所以我也不可能判断得面面具到,总是会出错的,所以才想知道有没有可以偷懒的办法。
  根据各位的回复来看,偷懒的办法是没有了……
作者: caruko    时间: 2010-12-20 16:29

在语句后面加一句   || goto :error
作者: andyrave    时间: 2010-12-20 17:22

原帖由 MantisLin 于 2010-12-20 11:25 发表
  因为我做是接收用户输入,然后判断用户输入的字符串来执行各种各样的操作的
  用户的输入有无数种可能,所以我也不可能判断得面面具到,总是会出错的,所以才想知道有没有可以偷懒的办法。
  根据各位的回 ...


输入错误  直接跳转回去上级命令  让用户重新输入即可  或者跳转到错误提示




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2