批处理判断语句是否执行成功的方法

我有一批处理,我想知道某一句是否执行成功了,应该怎么判断呢,例如:我想判断if语句执行成功后才执行第10的语句,听说好像批处理每一句运行完后会有一个是否成功的标志,但不知... 我有一批处理,我想知道某一句是否执行成功了,应该怎么判断呢,例如:

我想判断if语句执行成功后才执行第10的语句,听说好像批处理每一句运行完后会有一个是否成功的标志,但不知道具体应该怎么做,谢谢!
展开
 我来答
zhhl_29081
2015-11-11 · TA获得超过430个赞
知道小有建树答主
回答量:956
采纳率:0%
帮助的人:251万
展开全部
根据系统变量%errorlevel%来判断其返回的结果,从而判断批处理是否成功执行。
errorlevel的返回值:每个命令执行之后,基本返回值0或1(0表示成功,1表示失败)
特别是内部命令,不能一概的说是系统规定的,而是命令所指定的,第三方命令(外部命令)会提供多个甚至几十个返回值但最多 256±1 个返回值,各命令的返回值含义可能各不相同。

@echo off
  ping 192.168.1.1
  IF ERRORLEVEL 1 goto MySuccess
  IF ERRORLEVEL 0 goto MyFail
  goto Goodbye
  :MyFail
  echo 命令执行成功!
  goto Goodbye
  :MySuccess
  echo 命令执行失败!
  goto Goodbye
  :Goodbye
  echo 命令已执行,结果显示在上面。
  注意,以上的代码,你只需要改动一行就足够了。
  修改这一行ping 192.168.1.1,改成为你自己的批处理命令就可以了。
  另外,判断ERRORLEVEL返回号应该由高到低。
追问:
我看到过你写的这些内容,测试过是成功的,但是我测试我上面写的就不行,你能不能帮我测试下,我自己测试,不管if有没有运行ERRORLEVEL都是 0,谢谢了

追答:
这样试试:
set "err=%errorlevel%"
if "%err%"=="0" (

//执行你要执行的语句

)

pause
gogo_oh
推荐于2017-12-16 · TA获得超过266个赞
知道答主
回答量:83
采纳率:0%
帮助的人:77万
展开全部
根据系统变量%errorlevel%来判断其返回的结果,从而判断批处理是否成功执行。
errorlevel的返回值:每个命令执行之后,基本返回值0或1(0表示成功,1表示失败)
特别是内部命令,不能一概的说是系统规定的,而是命令所指定的,第三方命令(外部命令)会提供多个甚至几十个返回值但最多 256±1 个返回值,各命令的返回值含义可能各不相同。

@echo off
  ping 192.168.1.1
  IF ERRORLEVEL 1 goto MySuccess
  IF ERRORLEVEL 0 goto MyFail
  goto Goodbye
  :MyFail
  echo 命令执行成功!
  goto Goodbye
  :MySuccess
  echo 命令执行失败!
  goto Goodbye
  :Goodbye
  echo 命令已执行,结果显示在上面。
  注意,以上的代码,你只需要改动一行就足够了。
  修改这一行ping 192.168.1.1,改成为你自己的批处理命令就可以了。
  另外,判断ERRORLEVEL返回号应该由高到低。
更多追问追答
追问
我看到过你写的这些内容,测试过是成功的,但是我测试我上面写的就不行,你能不能帮我测试下,我自己测试,不管if有没有运行ERRORLEVEL都是 0,谢谢了
追答
这样试试:
set "err=%errorlevel%"
if "%err%"=="0" (

//执行你要执行的语句

)

pause
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1XXX1XX1XX1XX
2016-04-16 · TA获得超过461个赞
知道答主
回答量:78
采纳率:0%
帮助的人:25.2万
展开全部
根据系统变量%errorlevel%来判断其返回的结果,从而判断批处理是否成功执行。
errorlevel的返回值:每个命令执行之后,基本返回值0或1(0表示成功,1表示失败)
特别是内部命令,不能一概的说是系统规定的,而是命令所指定的,第三方命令(外部命令)会提供多个甚至几十个返回值但最多 256±1 个返回值,各命令的返回值含义可能各不相同。

本来批处理检测是否成功有个错误返回值errorlevel,一般程序运行结束都会有个返回值,0表示运行成功,if %errorlevle% equ 0 echo yes
不过这个错误代码有些程序不怎么好用。。。所以一般都用管道符号&&来代替
set/a c=a+b &&set/a c=c+1 表示如果c=a+b执行成功才会执行c=c+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bfd83909
2016-04-09
知道答主
回答量:28
采纳率:0%
帮助的人:13.2万
展开全部
根据系统变量%errorlevel%来判断其返回的结果,从而判断批处理是否成功执行。
errorlevel的返回值:每个命令执行之后,基本返回值0或1(0表示成功,1表示失败)
特别是内部命令,不能一概的说是系统规定的,而是命令所指定的,第三方命令(外部命令)会提供多个甚至几十个返回值但最多 256±1 个返回值,各命令的返回值含义可能各不相同。

@echo off
  ping 192.168.1.1
  IF ERRORLEVEL 1 goto MySuccess
  IF ERRORLEVEL 0 goto MyFail
  goto Goodbye
  :MyFail
  echo 命令执行成功!
  goto Goodbye
  :MySuccess
  echo 命令执行失败!
  goto Goodbye
  :Goodbye
  echo 命令已执行,结果显示在上面。
  注意,以上的代码,你只需要改动一行就足够了。
  修改这一行ping 192.168.1.1,改成为你自己的批处理命令就可以了。
  另外,判断ERRORLEVEL返回号应该由高到低。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhanglei523190
2016-05-09 · 超过21用户采纳过TA的回答
知道答主
回答量:73
采纳率:33%
帮助的人:9.1万
展开全部
什么语言,什么环境,设置一个返回值就可以了,当执行成功返回标志就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式