[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理中有没有错误时跳转?

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

  1. on error goto xxx:
复制代码

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

[ 本帖最后由 MantisLin 于 2010-12-19 10:44 编辑 ]

No No No! 绝对不是所有!
最起码语法错误它都应对不了,有些重大错误它也无法Next

TOP

if %errorlevel% 1 goto next

TOP

回复 3楼 的帖子

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

[ 本帖最后由 MantisLin 于 2010-12-19 18:09 编辑 ]

TOP

回复 2楼 的帖子

好吧,那就算是能搞定大部分错误好了,那么请问有没有这样的语句?

TOP

回复 4楼 的帖子

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

[ 本帖最后由 hanyeguxing 于 2010-12-19 18:23 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 6楼 的帖子

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

[ 本帖最后由 MantisLin 于 2010-12-19 18:18 编辑 ]

TOP

崩溃。。。把那%去了。。。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 8楼 的帖子

别崩溃,把%去了确实没错了
但是我上面也说了,是要预防未知错误的
莫非要我在每条语句后面都加上这么一句?

TOP

难道你写段代码,还句句都可能出错?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 10楼 的帖子

难道你写段代码,还能保证句句都不出错?

TOP

批处理默认就是on error resume next的。
不然基本上就不会2>nul了
但是当有if,for等的语法错误时,就会与vbs一样退出整个批处理。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

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

TOP

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

TOP

在语句后面加一句   || goto :error

TOP

返回列表