UEFI/Windows 的nsh/batch script 如何得到 python 離開的exit code ?

最近研究透過python可以部份取代Windows/UEFI的batch腳本語言, 因為原本的windows的腳本語言不易閱讀, 也不易維持更新, 許多高階程式語言的特性也很缺乏, 例如模組化 modularity, 例外處理, …等! 所以automation如果使用原本預設的windows/uefi的nsh腳本語言, 會有土法煉鋼的感覺, 不夠方便使用

環境1: UEFI介面底下

做產線UEFI自動化測試會透過 nsh file去呼叫執行檔, 這些執行檔會在程式結束給予一個離開的代碼(Exit Code), 而原先的 nsh file裡面再根據這個的 lasterror變數做去判定這執行檔是pass or fail, 所以要導入python到自動化測試流程的話, 要先確定是否可以一樣用 lasterror判定結果

先寫 nsh file

test.nsh 程式碼

再寫 python code

abc.py 程式碼
法1: 直接透過 exit(n) 離開

法2: 透過python內建的 sys module的 sys.exit(n)

然後執行test.nsh , 確認回傳的lasterror是否為3

環境2: Windows介面底下

做產線自動化測試會透過 batch file去呼叫 exe/bat 等執行檔, 這些執行檔會在程式結束給予一個離開的代碼(Exit Code), 而原先的batch file裡面再根據這個的 errorlevel變數做去判定這執行檔是pass or fail, 所以要導入python到自動化測試流程的話, 要先確定是否可以一樣用 errorlevel 判定結果

先寫 batch file

test.bat 程式碼

再寫 python code

abc.py 程式碼
法1: 直接透過 exit(n) 離開

法2: 透過python內建的 sys module的 sys.exit(n)

然後執行test.bat , 確認回傳的errorlevel是否為2

發表迴響