从命令行启动EasySQLMAIL中的信息推送任务

想在自己写的Windows批处理命令(BAT程序)中启动EasySQLMAIL中的任务,可以实现吗?

EasySQLMAIL从1.0.1213版本开始提供了从命令行启动信息发布任务的功能。本文向您介绍如何在命令行中执行信息发布任务。

 

01  在任务配置中启用“允许从DOS命令行中启动此任务”选项

为了能够从命令行启动指定的任务,管理员需要先在EasySQLMAIL的任务配置界面中启用指定任务的“允许从DOS命令行中启动此任务”选项。

 

 

 02  在命令行中启动任务您可以在Windows命令行中通过如下命令启动要执行的任务。

sqlmail.exe 204 要执行的任务ID

其中,sqlmail.exe的位置在EasySQLMAIL安装目录下的bin目录中。命令的第一个参数"204"表示启动一个任务,第二个参数是要启动的任务ID。任务ID可以在任务管理界面中查询到。

 

 

 例如,要在命令行中启动上面截图中的ID为12的任务时,可以用如下命令:

sqlmail.exe 204 12

03 命令执行后,会返回以下代码:

0      任务实例已生成。(注意:返回0只表示任务实例已经生成,并不代表信息推送任务已经执行成功。任务实例还要由EasySQLMAIL调度后才能执行)
991  执行命令失败。查询任务控制服务日志了解详细原因。
992  版本不支持此功能。请检查您使用的EasySQLMAIL版本是否支持此特性。
993  发送命令失败,主程序可能未启动。请检查EasySQLMAIL系统是否启动。
994  任务ID不存在。请检查任务ID是否正确。
995  任务已被管理员停用,不能执行。
996  生成任务实例时失败。请查询任务控制服务日志了解详细原因。
997  任务配置不允许从命令行启动此任务。
您可以在调用sqlmail.exe后通过Windows命令行的%errorlevel%变量获得命令的返回代码。  

04  应用案例

下面的代码可以在Windows批处理文件中对指定的IP地址进行PING测试,如果测试失败,就调用EasySQLMAIL中的任务向管理员发送提示邮件。

@ECHO OFF
REM 此演示中对IP地址进行PING测试,如果不通,就调用EasySQLMAIL中的ID为14的信息推送任务向管理员发送提示邮件
SET IP=192.168.100.1
ping -n 1 %IP% | find "TTL="
if %ERRORLEVEL% EQU 0 goto SUCCEED
ECHO PING不通

REM 这里调用EasySQLMAIL中的ID为14的信息推送任务向管理员发送提示邮件
F:\EasySQLMAIL\bin\sqlmail.exe 204 14 GOTO END
:SUCCEED
ECHO PING通了
:END

  


05  需要注意的问题

(1)通过命令行启动任务时,EasySQLMAIL系统必须正在运行,否则任务无法启动。

(2)命令执行时,生成任务实例后会立即返回,不会等待任务执行完成后再返回。因此命令返回0时只表示生成任务实例成功,并不代表任务已执行成功。

posted on 2022-04-29 10:05  南方飞猪  阅读(54)  评论(0编辑  收藏  举报