Пакетный файл: Blat отправляет 2 письма, а не 1 - PullRequest
2 голосов
/ 08 января 2010

в первый раз я использовал blat, и он, кажется, работает нормально, однако он отправляет два электронных письма на каждое письмо, которое я намереваюсь отправить. Выдержка из сценария ниже:

::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, но только проблемы в этом сценарии.

Спасибо за помощь

Ответы [ 2 ]

2 голосов
/ 08 января 2010

Возможно, вам следует остановить пакетный файл после вызова :checkForFailures:

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

:checkForFailures
...

В противном случае вы вызываете его один раз, и выполнение продолжается непосредственно после call. В этом случае он снова запускает подпрограмму :checkForFailures и отправляет второе письмо.

0 голосов
/ 08 января 2010

как все это срабатывает? это флаг изменения / создания файла, который делает это? иногда эти виды триггеров могут быть дважды учтены из-за того, как ОС обрабатывает измененные / создать триггеры.

...