bat脚本中如何判断一条命令是否执行成功?
shell中如果执行成功会返回0,dat里面有没有类似的?在网上没有查到,求助各位牛人,先谢谢了 展开
方法和详细的操作步骤如下:
1、第一步,将编写的bat批处理文件拖到cmd命令窗口中,以定期清除旧数据,见下图,转到下面的步骤。
2、第二步,执行完上面的操作之后,执行后返回的错误代码将返回一个错误,并且重复出现该错误提示该乱码字段不是内部或外部命令,见下图,转到下面的步骤。
3、第三步,执行完上面的操作之后,打开批处理文件。
批处理文件用于在1天前定期删除zip文件,见下图,转到下面的步骤。
4、第四步,执行完上面的操作之后,将语句分别粘贴到cmd命令行中并执行,见下图,转到下面的步骤。
5、第五步,执行完上面的操作之后,重新使用其他字符集来编写批处理文件。
打开编写的批处理bat文件,选择“文件”选项,然后在文件菜单中单击“另存为”选项,见下图,转到下面的步骤。
6、第六步,执行完上面的操作之后,将文件另存为ANSI编码格式的批处理文件,见下图,转到下面的步骤。
7、第七步,执行完上面的操作之后,直接重新运行bat批处理文件,或在cmd中成功运行,见下图。这样,就解决了这个问题了。
方法一:用 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