tengo el siguiente código de lote ventanas:Errorlevel en un bucle For (ventanas 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%)
)
Pero no funciona como espero.
Todo el nombre procesa iidbms, IIGCC, iigcd, dmfacp, dmfrcp, rmcmd son reales, y que se encuentran, en lugar QWERTY es un inventaron uno y no debe encuéntrelo, entonces debe imprimir "no se encontró proceso 1", pero no lo hace, siempre imprime 0.
Pero lo que he notado es que si ejecuto el tasklist | findstr /i qwerty
desde el indicador de dos, justo después de que exista el %errorlevel%
= 1.
¿Qué tipo de respuesta podría ser o mejor?
He invertido el orden (primero 1 y luego 0), pero la resultado es el mismo – aemme
Si no ha cambiado el código publicado, necesita un goto después de su nivel de error 1 para omitir el siguiente enunciado, o cambiar su condición (usar NEQ, etc.). – JRL
algún ejemplo ...? – aemme