
有一个折衷的办法,就是b.bat在运行开始写一句@echo A>runlog.txt,在结尾在握乎写一句@echo Z>runlog.txt。
您检测的批处理可以循环读取runlog.txt的内容,直接腔棚写
@if exist runlog.txt (
@set /p runcheck=<runlog.txt
@if %runcheck%==A (
@echo b.bat在运段圆悉行
) else (
@echo b.bat未运行
)
) else (
@echo b.bat位运行
)
根据系统变量%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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)