![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 20:30 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » call语句的问题??? |
| 可打印版本 2,348 / 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 |