je les fenêtres suivantes code de lot:Errorlevel dans une boucle (fenêtres batch)
for %%i in (iidbms iigcc iigcd dmfacp dmfrcp rmcmd qwerty) do (
tasklist | findstr /i %%i
echo %errorlevel%
if %errorlevel% == 0 (echo %%i ok process found %errorlevel%)
if %errorlevel% == 1 (echo %%i no process found %errorlevel%)
)
Mais cela ne fonctionne pas comme je l'attends.
Tous le nom traite iidbms, IIGCC, iigcd, dmfacp, dmfrcp, rmcmd sont réels, et ils se trouvent, au lieu azerty est un inventèrent un et ne devrait pas le trouver, alors devrait imprimer "aucun processus trouvé 1", mais ce n'est pas, il imprime toujours 0.
Mais ce que j'ai noté est que si je cours le tasklist | findstr /i qwerty
à partir de l'invite DOS, juste après il ya que le %errorlevel%
= 1.
Quelle sorte de réponse pourrait être ou mieux?
J'ai inversé l'ordre (premier 1 puis 0) mais le resul est le même – aemme
Si vous n'avez pas changé le code affiché, alors vous avez besoin d'un goto après votre niveau d'erreur 1 pour sauter l'instruction suivante, ou changer votre condition (utiliser NEQ, etc.). – JRL
un exemple ...? – aemme