2009-06-18 6 views
12

Je cherche un moyen d'appeler un script python à partir d'un fichier de commandes et d'obtenir un code de retour à partir du script python. Confus je sais, mais il est basé sur un système qui est actuellement utilisé. Je le réécrirais, mais ce serait beaucoup plus rapide.Appelez Python à partir du fichier Bat et obtenez le code de retour

Alors:

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

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

Répondre

18

Le shell Windows enregistre le code de retour dans la variable ERRORLEVEL:

python somescript.py 
echo %ERRORLEVEL% 

Dans le script python vous pouvez quitter le script et définir la valeur de retour en appelant exit():

exit(15) 

Dans les anciennes versions de python vous pouvez t abord importer la fonction exit() à partir du module sys:

from sys import exit 
exit(15) 
+0

Bingo! Bravo :) – Kezzer

+0

Le niveau d'erreur n'est qu'une pseudo-variable, il ne se trouve nulle part dans l'environnement. – Joey

+2

Cela ne fonctionnera PAS si la variable% ERRORLEVEL% existe déjà. Python ne l'écrase pas dans ce cas (mais retourne le code correct - il sera simplement caché par la variable!). – fmuecke

3

Essayez:

import os 
os._exit(ret_value) 

Vous devriez également vérifier:

+0

Et grâce à vous, vos deux réponses étaient correctes, j'avais juste besoin de l'autre côté du fichier chauve-souris aussi. Merci encore. – Kezzer

Questions connexes