Bonjour,

je rencontre un problème avec un script qui semble ne pas récupérer correctement la valeur de l'ERRORLEVEL. J'ai essayé plusieurs syntaxes, toutes sont en échec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sc query OpsMgrEventConsumer | find /I "STATE" | find "RUNNING"
if errorlevel 0 goto :stop
goto :start

:stop
net stop OpsMgrEventConsumer

sc query OpsMgrEventConsumer | find /I "STATE" | find "STOPPED"
if errorlevel 1 goto :stop
goto :start

:start
net start OpsMgrEventConsumer
if errorlevel 0 (
opcmsg a=a o=o msg_t="test scom" s=minor
)
if errorlevel 1 (
opcmsg a=a o=o msg_t="test NOK scom" s=minor
)
L'exécution du script échoue après la commande net start, le script ne passe que par la boucle 1 et jamais par la deuxième. Si j'inverse en placant l'errorlevel a 1 en premier, a ce moment la, les 2 commandes sont exécutées...

J'ai essayé avec la syntaxe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if errorlevel 0 goto OK
if errorlevel 1 goto NOK
ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if errorlevel 0 goto OK else goto NOK
mais la c'est encore pis, rien ne se passe !
J'avoue je ne comprends plus rien.

Pour info, je n'ai pas d'autre choix que d'utiliser la commande spéciale opcmsg car ce script ne fonctionne pas si je le lance directement depuis mon ERP.

OS: windows 2008 R2 x64

D'avance merci pour votre aide