2009-06-18 47 views
12

我正在寻找一种方法来从批处理文件调用python脚本并从python脚本获取返回代码。令人困惑的是我知道,但它是基于当前正在使用的系统。我会重新写它,但这种方式会更快,更快。从蝙蝠文件调用Python并获取返回代码

所以:

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

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

回答

18

Windows外壳程序保存在ERRORLEVEL变量返回代码:

python somescript.py 
echo %ERRORLEVEL% 

在Python脚本,您可以退出脚本,并通过调用exit()设定的返回值:

exit(15) 

在旧版本的Python你migh的t个第一必须从sys模块导入exit()功能:

from sys import exit 
exit(15) 
+0

宾果!干杯:) – Kezzer

+0

Errorlevel只是一个伪变量,它实际上并不在环境中的任何地方。 – Joey

+2

如果%ERRORLEVEL%变量已经存在,这将不起作用。在这种情况下,Python不会覆盖它(但会返回正确的代码 - 它只会被变量隐藏!)。 – fmuecke

3

尝试:

import os 
os._exit(ret_value) 

您也应该检查:

+0

感谢您,您的答案都是正确的,我还需要从bat文件中获得另一方面的答案。再次感谢。 – Kezzer