Tengo una pregunta sobre Scripts Kix32

Buenas noches,
espero que puedas ayudarme.
Resumen:
Tengo dos procesos .bat y un proceso kix y necesito controlar el código de retorno que devuelve uno de los procesos .bat.
Mejor Explicado:
Imaginemos que tengo el proceso "P1.bat" el cual invoca a un proceso Kix "P2.Kix".
Dentro de este proceso kix tengo un bucle WHILE dentro del cual mientras se cumpla la condición va a estar llamando a otro proceso "P3.bat".
El proceso "P3.bat" va a devolver un código de retorno ( %ERRORLEVEL% ) que quiero controlar dentro del Kix "P2.Kix"
¿Cómo lo hago?
Gracias, saludos.

2 Respuestas

Respuesta
-1
Independientemente del entorno concreto en que quieras utilizarlo entiendo que, básicamente, estás preguntando como se puede establecer el valor de la variable de entorno ERRORLEVEL desde dentro de un BAT para que pueda tratarse desde fuera de ese BAT, bien por otro BAT que llamó al primero o por cualquier otro proceso que invocó ese BAT.
Quiero aprovechar para aclarar que no se puede hacer con SET ERRORLEVEL=n porque esto crearía una variable local, con el mismo nombre que la variable de entorno del sistema, no visible desde fuera del propio contexto del BAT en el que se está trabajando.
La forma correcta de establecer desde un BAT el valor de la variable ERRORLEVEL como resultado de la ejecución del BAT es usar
EXIT /B n
Siendo "n" el valor que queremos asignar a la variable ERRORLEVEL al salir del BAT. Si usáramos el EXIT sin la opción "/B" nos saldríamos de la ventana CMD mientras que si lo hacemos así solo nos salimos del BAT concreto en el que figura la orden.
Respuesta
-1
El código de retorno se captura automáticamente por el script y lo asigna a la variable errorlevel, tan sólo existen dos valores posibles, el 0 y el 1, es como un boleano. 0 significa correcto, 1 que ha habido algún error. Puedes controlar su resultado de esta forma:
(Tras la ejecución de un comando o programa)
if %ERRORLEVEL% == 0 goto correcto
echo "Se ha producido un error"
goto fin
:Correcto
Echo "El comando se ha ejecutado correctamente"
:Fin
Por favor, evalúa la respuesta si la consideras finalizada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas