中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 23:48
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » call语句的问题???
可打印版本  2,360 / 17
第1楼 sunyao 发表于 2006-12-01 03:02
初级用户 发帖 60 积分 141 来自 天津
call语句的问题???
有两个bat文件:a.bat和b.bat
在b.bat中call a.bat
现在想在call a.bat时如果a.bat发生异常就不再返回b.bat了
不知道怎么实现
第2楼 pkone 发表于 2006-12-01 03:33
初级用户 发帖 8 积分 25
根据a.bat里的异常返回值判断
if level XXX=xxx exit
第3楼 sunyao 发表于 2006-12-01 04:00
初级用户 发帖 60 积分 141 来自 天津
判断可以做到
exit只能终止a.bat
可还是要返回到b.bat中继续执行b.bat
我的意思是如果a.bat异常就不再返回b.bat
整个程序终止也就是一旦a.bat异常就什么都不执行了
别忘了整个程序是执行b.bat 在b.bat中call a.bat
第4楼 KIKOOOO 发表于 2006-12-01 04:34
初级用户 发帖 12 积分 34
根据返回值来终止a.bat

goto :eof
第5楼 sunyao 发表于 2006-12-01 05:28
初级用户 发帖 60 积分 141 来自 天津
还是没看懂我的问题
我在a.bat异常时不仅要结束a.bat还要结束b.bat
b.bat也不执行了
goto:eof
只会结束a.bat 但还要返回b.bat继续执行剩下的程序
第6楼 zh159 发表于 2006-12-01 06:23
金牌会员 发帖 1,467 积分 3,687
LZ没明白 2 楼 pkone 的意思:

a.bat里发生异常,一般会有一个异常返回值,b.bat里用if level XXX=xxx exit判断该异常返回值结束运行
第7楼 sunyao 发表于 2006-12-01 06:33
初级用户 发帖 60 积分 141 来自 天津
其实严格讲并不是一个异常
是程序的一个分支
如果执行分支就结束所有程序
第8楼 lxmxn 发表于 2006-12-01 07:17
版主 发帖 4,938 积分 11,386

  b.bat中加入下面的一个语句试试:
第9楼 sunyao 发表于 2006-12-01 07:20
初级用户 发帖 60 积分 141 来自 天津
这样好像不行吧
call a.bat || goto :eof
这句好像是call a.bat 失败才执行goto :eof
但事实上并不是call a.bat 失败
第10楼 lxmxn 发表于 2006-12-01 07:27
版主 发帖 4,938 积分 11,386

  你试过了没有?

          事实胜于雄辩!
第11楼 sunyao 发表于 2006-12-01 07:36
初级用户 发帖 60 积分 141 来自 天津
真不行
不好意思
第12楼 lxmxn 发表于 2006-12-01 07:40
版主 发帖 4,938 积分 11,386

  怎么不行?把你要实现的目的和运行结果说一下。
第13楼 sunyao 发表于 2006-12-01 07:47
初级用户 发帖 60 积分 141 来自 天津
b.bat中call a.bat
我在a.bat脚本中做一个判断
如果状态为fail,就向log中输出“异常”
同时结束a.bat和b.bat
现在是a.bat结束但b.bat还要执行到程序结束
第14楼 lxmxn 发表于 2006-12-01 08:00
版主 发帖 4,938 积分 11,386

  实在听不懂你说的什么意思,两个bat能完成的,一个bat就可以完成,可以合并起来。p.s.:log 是指的什么东西啊?
第15楼 redtek 发表于 2006-12-01 12:34
金牌会员 发帖 1,147 积分 2,902
我也看得不太明白,这是一个 1.bat Call 2.bat 的是否正常运行了 2.bat 的测试代码:)

你可以将 2.bat 改名试试(故意制造一个错误),这个时候,1.bat就会知道2.bat运行的时候出错了,并输出相关信息……

sunyao兄可以参考原理……



运行环境: Windows CMD Shell

1.bat


2.bat
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023