bat文件调用 sql命令后 不继续执行???

我在a.bat中调用另外一个b.bat。b.bat的sql语句执行结束(成功执行),不返回控制台。是为什么呢。
执行结果:
-----------
message 1
>
>(这里为什么不继续执行"echo message 2"命令呢)
-----------

a.bat内容:
-----------------
@echo off
echo message 1
call "b.bat" >> log.txt
echo message 2
-----------------

b.bat内容:
-----------------
osql "XXXXXXXX"(为备份数据库语句)
-----------------
此问题本人已解决。方法:osql 后面加了参数 /Q
/Q 执行查询并立即退出osql。将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。
追加提问,b.bat中使用for循环调用 osql语句。为什么循环1次可以(执行成功),循环多次就不执行了。
b.bat内容:
-----------------
for /L %%i in (1,1,10) do (
call osql /Q " XXXXXX " (修改表中某一字段的值,下次循环时修改下一个。只循环1次可以。)
)
-----------------

osql "XXXXXXXX" -Q

C:\Documents and Settings\Administrator>osql /?
Microsoft (R) SQL Server 命令行工具
版本 9.00.1399.06 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

注意: osql 并不支持 SQL Server 2005的所有功能。
请使用 sqlcmd。有关详细信息,请参阅 SQL Server 联机丛书。

用法: osql [-U 登录 ID] [-P 密码]
[-S 服务器] [-H 主机名] [-E 可信连接]
[-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值]
[-h 标题] [-s 列分隔符] [-w 列宽]
[-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符]
[-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称]
[-q "命令行查询"] [-Q "命令行查询" 并退出]
[-n 删除编号方式] [-m 错误级别]
[-r 发送到 stderr 的消息] [-V 严重级别]
[-i 输入文件] [-o 输出文件]
[-p 打印统计信息] [-b 出错时中止批处理]
[-X[1] 禁用命令,[退出的同时显示警告]]
[-O 使用旧 ISQL 行为禁用下列项]
<EOF> 批处理
自动调整控制台宽度
宽消息
默认错误级别为 -1 和 1
[-? 显示语法摘要]

提供
www.8023ni.com
www.jvhao.com
望采纳
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-06
osql不是BAT命令吧,如果想看什么错误的话,最好在句末加上PAUSE,看看是什么情况先
第2个回答  2011-11-06
b.bat内容最后加上goto :eof
相似回答