Vbscript Vb脚本中的错误处理

Vbscript Vb脚本中的错误处理,vbscript,Vbscript,我有一个调用bat文件的Vb脚本。bat文件包含发送电子邮件的逻辑。当我在bat文件中给出无效的电子邮件服务器名称时,我使用objShell.run运行bat文件。电子邮件不会发送。但是objShell.run始终返回0。在这种情况下如何进行异常处理。如果您使用的是objShell.run方法它正在运行一个单独的进程,不关心当前正在运行的进程。我将查看ProcessStartInfo。我认为您可以从ProcessStartInfo重定向输入/输出/错误流。还有一些关于它的链接您最好使用CDO从V

我有一个调用bat文件的Vb脚本。bat文件包含发送电子邮件的逻辑。当我在bat文件中给出无效的电子邮件服务器名称时,我使用objShell.run运行bat文件。电子邮件不会发送。但是objShell.run始终返回0。在这种情况下如何进行异常处理。如果您使用的是
objShell.run
方法它正在运行一个单独的进程,不关心当前正在运行的进程。我将查看
ProcessStartInfo
。我认为您可以从
ProcessStartInfo
重定向输入/输出/错误流。还有一些关于它的链接

您最好使用CDO从VBScript直接发送电子邮件。否则,批处理错误非常困难,您将不得不求助于退出代码。

如果您想在不安装的情况下发送,请尝试第二种方法。您必须初始化对象。在那个例子中,我删除了链接中的h,因为我不能发布链接

CDO.MESSAGE

'Script to send an email through QTP nice one Set oMessage = CreateObject("CDO.Message")

'==This section provides the configuration information for the remote SMTP server. '==Normally you will only change the server name or IP. oMessage.Configuration.Fields.Item _ ("ttp://schemas.microsoft.com/cdo/configuration/sendusing") = 2

'Name or IP of Remote SMTP Server oMessage.Configuration.Fields.Item _ ("ttp://schemas.microsoft.com/cdo/configuration/smtpserver") =""

'Server port (typically 25) oMessage.Configuration.Fields.Item _ ("ttp://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

oMessage.Configuration.Fields.Update oMessage.Subject = "Test Mail" oMessage.Sender = "" oMessage.To ="" 'oMessage.CC = "" 'oMessage.BCC = "" oMessage.TextBody = "Test Mail from QTP"&vbcrlf&"Regards,"&vbcrlf&"Test" oMessage.Send

Set oMessage = Nothing

是否在批处理文件中设置流程退出代码?