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

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

根据系统变量%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

@echo off

setlocal enabledelayedexpansion

set ms=mshta vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(msgbox("是否需要分类可执行程序",4096+64+4,"对话框标题"))(window.close)

for /f %%i in ('!ms!') do (

  if "%%i"=="6" echo 选择了“是”

  if "%%i"=="7" echo 选择了“否”

)

pause

另一种方法,用临时vbs文件:

@echo off

>"%tmp%\a.vbs" echo wsh.quit(msgbox("是否需要分类可执行程序",4096+64+4,"对话框标题"))

"%tmp%\a.vbs"

if %errorlevel%==6 echo 选择了“是”

if %errorlevel%==7 echo 选择了“否”

del "%tmp%\a.vbs"

pause


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11453608.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存