2

初めてブラットを使用しましたが、問題なく動作しているように見えますが、送信しようとしている電子メールごとに 2 つの電子メールを送信します。スクリプトの抜粋は次のとおりです。

::If we have a problem we email from here
CALL :checkForFailures

:checkForFailures
IF EXIST %ERROR_FILE% CALL :email & EXIT /B 1
::pause
GOTO :eof

:email
IF %TOLOG%==Y (
BLAT -f noreply@mydomain.com -to sapatos@mydomain.com -server myserver -subject "subject text" -body "Body text" -attacht 
::%PROBLEM_LIST% >> %LOGFILE%
) 

GOTO :eof

ログファイルへの出力の有無にかかわらず、これを実行しようとしました。cmdプロンプトからは正常に実行されますが、このスクリプト内で問題が発生するだけです。

助けてくれてありがとう

4

2 に答える 2

2

たぶん、あなたはあなたの呼び出しの後にあなたのバッチファイルを止めるべきです:checkForFailures

::If we have a problem we email from here 
CALL :checkForFailures 
goto :eof

:checkForFailures
...

それ以外の場合は、一度呼び出すと、の直後に実行が続行されますcall。その場合、:checkForFailuresサブルーチンを再度実行し、2番目のメールを送信します。

于 2010-01-08T06:58:43.007 に答える
0

全体がどのようにトリガーされますか?それを行っているのはファイルの変更/作成フラグですか? OSが変更/作成トリガーを処理する方法が原因で、これらの種類のトリガーが二重にカウントされる場合があります。

于 2010-01-08T16:09:46.390 に答える