2012-03-29 16 views
0

私はbatファイルを呼び出すVbスクリプトを持っています。batファイルは、batファイルにemail.iを送信するロジックを持っています。objShell.run.whenを使用してbatファイルを実行します。電子メールは送信されません。しかし、objShell.runは常に0を返します。この場合、例外処理を行う方法Vbスクリプトでのエラー処理

+0

バッチファイルにプロセス終了コードを設定していますか? –

答えて

0

objShell.runメソッドを使用している場合、別のプロセスが実行されています。現在実行中のプロセスです。私はProcessStartInfoを見るだろう。 ProcessStartInfoから入力/出力/エラーストリームをリダイレクトできると思います。 Herehereはそれに関するリンクです

0

あなたの最善の策は、CDOを使用してVBScriptからメールを送信することです。それ以外の場合、バッチでのエラー処理は非常に難しく、終了コードに頼らざるを得なくなります。

0

インストールせずに送信する場合は、2番目の方法を試してください。オブジェクトを初期化する必要があります。その例では、リンクを投稿できないため、リンクの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