2009-06-18 15 views
12

Sto cercando un modo per chiamare uno script python da un file batch e ottenere un codice di ritorno dallo script python. Confondendo lo so, ma è basato su un sistema che è attualmente in uso. Lo riscriverei, ma in questo modo sarebbe molto, molto più veloce.Chiama Python dal file Bat e ottieni il codice di ritorno

Quindi:

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

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

risposta

18

la shell di Windows salva il codice di ritorno nella variabile ERRORLEVEL:

python somescript.py 
echo %ERRORLEVEL% 

Nello script python si può uscire lo script e impostare il valore di ritorno chiamando exit():

exit(15) 

Nelle versioni precedenti di python si potrebbe t hanno prima di importare la funzione exit() dal modulo sys:

from sys import exit 
exit(15) 
+0

Bingo! Saluti :) – Kezzer

+0

Errorlevel è solo una pseudo-variabile, non è in realtà in nessun posto nell'ambiente. – Joey

+2

Questo NON funzionerà se la variabile% ERRORLEVEL% esiste già. Python non lo sovrascriverà in quel caso (ma restituirà il codice corretto - sarà semplicemente nascosto dalla variabile!). – fmuecke

3

Prova:

import os 
os._exit(ret_value) 

Si dovrebbe anche controllare:

+0

E grazie a te, entrambe le tue risposte erano corrette, avevo solo bisogno dell'altro lato dal file bat. Grazie ancora. – Kezzer

Problemi correlati