2014-10-03 12 views
0

我需要對此處的問題作進一步說明: Call Python From Bat File And Get Return Code。 我沒有名譽在那裏寫我的評論,所以我發佈了一個新的問題。無法在蝙蝠文件中獲取Python返回代碼(更新)

我的批處理文件看起來像這樣:

@echo off 
start H:\PPython_2.7.5.1\App\python H:\PPython_2.7.5.1\App\checker_task.py 
@echo %ERRORLEVEL% > H:\PPython_2.7.5.1\App\output.txt 
EXIT /B %ERRORLEVEL% 

我打電話python腳本是語法和語義正確,則返回0或1。問題是,%ERRORLEVEL%變量不被影響返回Python腳本的值。對原始問題的回答(https://stackoverflow.com/a/1013293/3865171)的一條評論說:

「如果%ERRORLEVEL%變量已經存在,這將不起作用。在這種情況下,Python不會覆蓋它(但會返回正確的代碼 - 它只會被變量隱藏!)。「

這對我來說不是很清楚,我也找不到什麼是錯的。我想要的是能夠從Python返回0或1,並基於它來成功退出批處理文件。

回答

1

您必須位於CMD的相同實例中才能獲得正確的錯誤級別。 嘗試不用start

@echo off 
H:\PPython_2.7.5.1\App\python H:\PPython_2.7.5.1\App\checker_task.py 
echo %ERRORLEVEL% > H:\PPython_2.7.5.1\App\output.txt 
+0

非常感謝你,這解決了我的問題! – katericata 2014-10-03 11:02:29