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

我用dat脚本调用MSSQL 2000执行SQL脚本,如何判断我的脚本是否执行成功?
shell中如果执行成功会返回0,dat里面有没有类似的?在网上没有查到,求助各位牛人,先谢谢了

方法和详细的操作步骤如下:

1、第一步,将编写的bat批处理文件拖到cmd命令窗口中,以定期清除旧数据,见下图,转到下面的步骤。

2、第二步,执行完上面的操作之后,执行后返回的错误代码将返回一个错误,并且重复出现该错误提示该乱码字段不是内部或外部命令,见下图,转到下面的步骤。

3、第三步,执行完上面的操作之后,打开批处理文件。
 批处理文件用于在1天前定期删除zip文件,见下图,转到下面的步骤。

4、第四步,执行完上面的操作之后,将语句分别粘贴到cmd命令行中并执行,见下图,转到下面的步骤。

5、第五步,执行完上面的操作之后,重新使用其他字符集来编写批处理文件。
 打开编写的批处理bat文件,选择“文件”选项,然后在文件菜单中单击“另存为”选项,见下图,转到下面的步骤。

6、第六步,执行完上面的操作之后,将文件另存为ANSI编码格式的批处理文件,见下图,转到下面的步骤。

7、第七步,执行完上面的操作之后,直接重新运行bat批处理文件,或在cmd中成功运行,见下图。这样,就解决了这个问题了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26

方法一:用 errorlevel,一般0为成功,1为不成功

例:

@Echo Off
Tasklist|Find "QQ.exe"
If errorlevel 1 (
    Echo QQ.exe is not exist
) Else (
    Echo QQ.exe is exist
)

errorlevel用if判断时可以不扩展,详见if /?

也可以用%或!扩展

方法二:连接符号

||表示命令失败后执行的命令

&&表示命令成功后执行的命令

例:

@Tasklist|Find "QQ.exe"&&Echo QQ.exe is exist||Echo QQ.exe is not exist

追问

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

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

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

追答

哦,if errorlevel 0代表的是返回值大于等于0执行的操作(所以包括了1),如果是条件刚好等于零的话必须使用
if %errorlevel%==0或if !errorlevel!==0

追问

非常感谢,我这边查到了,原来批量操作的SQL语句本身执行错误返回的也是成功的标识0,所以,应该是SQLserver批量脚本执行的问题

本回答被提问者和网友采纳
第2个回答  2014-08-27
用!ERRORLEVEL!,1表示不成功,0表示成功

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网