2009-06-18 43 views
12

Estoy buscando una forma de llamar a un script python desde un archivo por lotes y obtener un código de retorno del script python. Confuso lo sé, pero está basado en un sistema que está actualmente en uso. Lo volvería a escribir, pero de esta manera sería mucho, mucho más rápido.Llamar a Python desde el archivo Bat y obtener el código de retorno

Así:

Bat ---------------------> Python 
    * call python file * 

Bat <--------------------------------- Python 
     * python does a load of work * 
     * and returns a return code * 

Respuesta

18

La cáscara de Windows guarda el código de retorno en la variable ERRORLEVEL:

python somescript.py 
echo %ERRORLEVEL% 

En el script en Python puede salir de la secuencia y defina el valor devuelto llamando exit():

exit(15) 

En versiones anteriores de python usted migh t primero tiene que importar la función del módulo exit()sys:

from sys import exit 
exit(15) 
+0

Bingo! Saludos :) – Kezzer

+0

Errorlevel es solo una pseudovariable, en realidad no está en ninguna parte del entorno. – Joey

+2

Esto NO funcionará si la variable% ERRORLEVEL% ya existe. Python no lo sobreescribirá en ese caso (pero devuelve el código correcto; ¡la variable lo ocultará!). – fmuecke

3

Probar:

import os 
os._exit(ret_value) 

También debe comprobar:

+0

Y gracias a ti, tus respuestas fueron correctas, solo necesité el otro lado del archivo bat. Gracias de nuevo. – Kezzer

Cuestiones relacionadas