2010-01-08 6 views
2

première fois que j'ai utilisé blat et il semble bien fonctionner mais il envoie deux e-mails pour chaque e-mail que j'ai l'intention d'envoyer. L'extrait de script est ci-dessous:Batch file: Blat envoi 2 emails non 1

::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 [email protected] -to [email protected] -server myserver -subject "subject text" -body "Body text" -attacht 
::%PROBLEM_LIST% >> %LOGFILE% 
) 

GOTO :eof 

J'ai essayé d'exécuter ceci avec et sans sortie dans le fichier journal. fonctionne bien à partir de l'invite cmd mais juste des problèmes dans ce script.

Merci pour l'aide

Répondre

2

Peut-être que vous devriez arrêter votre fichier de commandes après votre appel à :checkForFailures:

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

:checkForFailures 
... 

Sinon, vous l'appelez une fois, et l'exécution se poursuit directement après le call. Dans ce cas, il exécute à nouveau le sous-programme :checkForFailures et envoie un second courrier.

+0

Parfait merci. ne s'attendait pas à ce que: checkForFailures soit exécuté à moins qu'un appel n'ait été fait – sapatos

+0

Vous pouvez accepter des réponses, vous savez? – Joey

+0

Désolé Joey vient juste de découvrir comment ... ou que vous étiez supposé le faire. – sapatos

0

Comment tout se déclenche-t-il? est-ce un fichier modifier/créer un drapeau qui le fait? Parfois, ces types de déclencheurs peuvent être comptés deux fois en raison de la manière dont le système d'exploitation gère les déclencheurs modifiés/créés.