2009-06-18 79 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