bat脚本中如何判断一条命令是否执行成功?

时间:2020-12-19 05:20:58
我想用bat脚本调用MSSQL2000,执行SQL脚本,现在想知道SQL脚本是否执行成功,如果没有执行成功发邮件给我,怎样判断呢?

shell中如果命令执行成功就会返回0,bat里面该怎么判断呢?在网上拔了好长时间没有找到,特来请教给位大牛们

7 个解决方案

#1


bat 中用  IF [NOT] ERRORLEVEL number 判断程序运行结果,这需要程序支持。
你看看那个执行SQL的exe程序的帮助,有没有返回值?

#2


我写了bat来调用Mssql执行sql脚本进行数据库备份 ,判断脚本是否执行成功,发送邮件:

@isql -S ZXYJY -U backup26 -P 12345 -i d:\backup\backup.sql 

    If errorlevel 0 (
    call sendmail.vbs)
其中有一个数据库我故意设置为正在还原的状态,正在还原的数据库无法备份的,但是这个判定还是成功的,这怎样解决呢?

#3


一搜就找到了:
http://windowsitpro.com/windows/how-can-i-get-isqlexe-return-dos-errorlevel-me-test-05-feb-2000

#4


可以在bat中打印出结果看看

#5


引用 2 楼 salley_2010 的回复:
我写了bat来调用Mssql执行sql脚本进行数据库备份 ,判断脚本是否执行成功,发送邮件:

@isql -S ZXYJY -U backup26 -P 12345 -i d:\backup\backup.sql 

    If errorlevel 0 (
    call sendmail.vbs)
其中有一个数据库我故意设置为正在还原的状态,正在还原的数据库无法备份的,但是这个判定还是成功的,这怎样解决呢?


引用 2 楼 salley_2010 的回复:
我写了bat来调用Mssql执行sql脚本进行数据库备份 ,判断脚本是否执行成功,发送邮件:

@isql -S ZXYJY -U backup26 -P 12345 -i d:\backup\backup.sql 

    If errorlevel 0 (
    call sendmail.vbs)
其中有一个数据库我故意设置为正在还原的状态,正在还原的数据库无法备份的,但是这个判定还是成功的,这怎样解决呢?


不对的,我要执行SQL脚本,这是给errorlevel赋值 
如下语句:
@isql -S Salley-I007 -U backup26 -P Salley12345 -i d:\backup\backup.sql -E -o d:\backup\backup.out

#6


引用 3 楼 Tiger_Zhao 的回复:
一搜就找到了:
http://windowsitpro.com/windows/how-can-i-get-isqlexe-return-dos-errorlevel-me-test-05-feb-2000




不对的,我要执行SQL脚本,这是给errorlevel赋值 
如下语句:
@isql -S Salley-I007 -U backup26 -P Salley12345 -i d:\backup\backup.sql -E -o d:\backup\backup.out

#7


加  -b参数啊!

#1


bat 中用  IF [NOT] ERRORLEVEL number 判断程序运行结果,这需要程序支持。
你看看那个执行SQL的exe程序的帮助,有没有返回值?

#2


我写了bat来调用Mssql执行sql脚本进行数据库备份 ,判断脚本是否执行成功,发送邮件:

@isql -S ZXYJY -U backup26 -P 12345 -i d:\backup\backup.sql 

    If errorlevel 0 (
    call sendmail.vbs)
其中有一个数据库我故意设置为正在还原的状态,正在还原的数据库无法备份的,但是这个判定还是成功的,这怎样解决呢?

#3


一搜就找到了:
http://windowsitpro.com/windows/how-can-i-get-isqlexe-return-dos-errorlevel-me-test-05-feb-2000

#4


可以在bat中打印出结果看看

#5


引用 2 楼 salley_2010 的回复:
我写了bat来调用Mssql执行sql脚本进行数据库备份 ,判断脚本是否执行成功,发送邮件:

@isql -S ZXYJY -U backup26 -P 12345 -i d:\backup\backup.sql 

    If errorlevel 0 (
    call sendmail.vbs)
其中有一个数据库我故意设置为正在还原的状态,正在还原的数据库无法备份的,但是这个判定还是成功的,这怎样解决呢?


引用 2 楼 salley_2010 的回复:
我写了bat来调用Mssql执行sql脚本进行数据库备份 ,判断脚本是否执行成功,发送邮件:

@isql -S ZXYJY -U backup26 -P 12345 -i d:\backup\backup.sql 

    If errorlevel 0 (
    call sendmail.vbs)
其中有一个数据库我故意设置为正在还原的状态,正在还原的数据库无法备份的,但是这个判定还是成功的,这怎样解决呢?


不对的,我要执行SQL脚本,这是给errorlevel赋值 
如下语句:
@isql -S Salley-I007 -U backup26 -P Salley12345 -i d:\backup\backup.sql -E -o d:\backup\backup.out

#6


引用 3 楼 Tiger_Zhao 的回复:
一搜就找到了:
http://windowsitpro.com/windows/how-can-i-get-isqlexe-return-dos-errorlevel-me-test-05-feb-2000




不对的,我要执行SQL脚本,这是给errorlevel赋值 
如下语句:
@isql -S Salley-I007 -U backup26 -P Salley12345 -i d:\backup\backup.sql -E -o d:\backup\backup.out

#7


加  -b参数啊!