簡體   English   中英

Dot-source PowerShell腳本文件和返回代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM