2009-06-18 16 views
12

私は、バッチファイルからpythonスクリプトを呼び出して、pythonスクリプトからリターンコードを取得する方法を探しています。私は分かりませんが、現在使用されているシステムに基づいています。私はそれを書き直すだろうが、この方法ははるかに速くなるだろう。BatファイルからPythonを呼び出してリターンコードを取得

ので:あなたはスクリプトを終了し、exit()を呼び出して戻り値を設定することができますPythonスクリプトで

python somescript.py 
echo %ERRORLEVEL% 

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

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

答えて

18

WindowsシェルはERRORLEVEL変数にリターン・コードを保存します。

exit(15) 

古いバージョンのpythonでは、 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

関連する問題