标题: 如何判断一组命令执行成功与否? [打印本页]
作者: Cameron 时间: 2008-10-20 16:49 标题: 如何判断一组命令执行成功与否?
如题,要求能判断那条命令出错,如果是用每句后判断errorlevel可不可以精简下?麻烦各位了!
[ 本帖最后由 Cameron 于 2008-10-20 17:33 编辑 ]
作者: Batcher 时间: 2008-10-20 17:48
不可以
作者: pusofalse 时间: 2008-10-20 18:20
应该可以~
A.BAT- @echo off
- call B.BAT
- if %errorlevel% equ 1 (
- echo ping 命令出错
- ) else (
- if %errorlevel% equ 2 (
- echo tasklist^|findstr 命令出错
- ) else (
- if %errorlevel% equ 3 (
- echo B.BAT全部执行成功
- )))
- pause
复制代码
B.BAT- ping www.baidu.com||exit /b 1
- tasklist|findstr /i "explorer.exe">nul||exit /b 2
- exit /b 3
复制代码
用a来调用b,如果b中的某一条命令运行不成功,即指定一个唯一的退出编码来用标记这条运行失败的命令。在a中判断这个退出编码就可以了。
[ 本帖最后由 pusofalse 于 2008-10-20 18:23 编辑 ]
作者: lovelymorning 时间: 2008-10-20 19:44
&& ||
这两个很不错的。。。。。
作者: Cameron 时间: 2008-10-20 21:36 标题: 回复 3楼 的帖子
测试了一下,如果命令全部出错只会显示ping出错。连续有命令出错,指定的退出码是累加还是覆盖?||是啥意思?
另外,帖子中的“那“改为”哪“,不好意思-_-!
作者: pusofalse 时间: 2008-10-20 21:50 标题: 回复 5楼 的帖子
只要有一条命令出错就会自动退出了,何来全部出错?
作者: Cameron 时间: 2008-10-21 16:54
原帖由 pusofalse 于 2008-10-20 21:50 发表
只要有一条命令出错就会自动退出了,何来全部出错?
难道是因为||?它到底是什么意思?还请赐教!
作者: Batcher 时间: 2008-10-21 17:42 标题: 回复 7楼 的帖子
||是什么意思,批处理基础教程里面没有讲吗?
作者: pusofalse 时间: 2008-10-21 17:44
||用来连接两天命令,只有前面的命令不成功时才运行后面的命令。
Ping www.baidu.com||exit /b 1
如果ping不通(运行失败),执行exit /b 1。否则继续向下执行。
exit /b 1的意思是退出当前批处理脚本,并指定一个退出码1。
作者: terse 时间: 2008-10-21 18:12
这样可以不?
a.bat- @echo off
- call B.BAT
- pause
复制代码
b.bat- ping www.baidu.com>nul&&echo ping 命令成功||echo ping 出错
- tasklist|findstr /i "^explorer.exe">nul&&echo tasklist^|findstr 命令成功||echo tasklist^|findstr出错
复制代码
作者: Cameron 时间: 2008-10-21 20:00
回8楼
不好意思,没看过咱们论坛的批处理基础教程,马上去看一下!
回9楼
thx,知道了!
回10楼
还不如每句后判断errorlevel精简呀o(∩_∩)o...
另外,下面的代码可以吗?cmdlist.bat里面是要执行的命令列表。草就代码没有测试。- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1,2*" %%a in (cmdlist.bat) do (
- %%a %%b %%c>nul 2>nul
- if !errorlevel! neq 0 echo %%a失败!
- )
- pause
复制代码
另外,
del没退出编码吗?
[ 本帖最后由 Cameron 于 2008-10-21 20:02 编辑 ]
作者: pusofalse 时间: 2008-10-21 21:23
del有无退出编码自己测试不就知道了吗。。。
作者: Cameron 时间: 2008-10-21 21:58 标题: 回复 12楼 的帖子
只是想确认一下-_-!
作者: jellyhk 时间: 2008-10-24 01:52
退出码?是什么!有什么用?》
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |