[英]Dot-sourcing PowerShell script file and return code
這是一些PowerShell代碼:
test.ps1:
. C:\path\to\test2.ps1
exit 5
test2.ps1:
exit 7
從標准命令提示符運行test.ps1,但是要運行PowerShell腳本,然后調用:
echo %errorlevel%
預期的結果是返回碼為7.這是PowerShell腳本中的第一個exit
命令。 然而,實際的結果是返回碼為5.顯然,包含的腳本已被終止,但其返回代碼被忽略,並且調用腳本繼續愉快。
我怎樣才能真正終止腳本並返回結果代碼,無論它是如何被調用的?
或者,我應該如何調用test2.ps1以便將其返回代碼傳遞給外部世界?
背景:我的構建腳本是使用PowerShell制作的,它包含用於不同任務的模塊文件。 一個任務當前失敗,構建服務器未檢測到錯誤,因為我的啟動構建腳本仍返回0。
如果最后一個腳本/程序退出失敗,您應該查詢$lastExitCode
,該值將具有非零值。 所以,你的樣本的test1.ps1
應該是這樣的:
. C:\path\to\test2.ps1
if ($lastexitcode -ne 0) { exit $lastexitcode}
exit 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.