6

我有一些簡單的PowerShell腳本,通過添加一個路徑,例如C:\build-scripts\bamboo-build-scripts\clear-directory.ps1作爲新的容量的可執行文件在竹子裏。Powershell腳本作爲可執行文件給出「錯誤」,給出了返回代碼-1的代碼

但是,如果將幾個腳本構建爲「腳本」進程時在構建過程中正確執行的腳本,以這種方式運行時會失敗,方法是返回代碼-1。以下是構建日誌的一個示例:

simple 18-Jun-2015 13:14:06 Failing task since return code of [C:\build-scripts\bamboo-build-scripts\update-checker.ps1 GeometryClassLibrary] was -1 while expected 0 

這發生在多個PowerShell腳本中,並導致構建過程的其餘部分失敗。

下面是一個例子PowerShell腳本,這是我執行通過傳遞參數到一個目錄:

Remove-Item $args[0] -Force -Recurse 
[io.directory]::CreateDirectory($args[0]) 

有什麼我需要添加到PowerShell腳本,使其與正確的代碼退出?或者我沒有在Bamboo中正確定義可執行文件?

+0

Bamboo對powershell的支持似乎對我來說很有限,因爲我將它作爲腳本任務的有限使用。 –

+0

我們在腳本任務中使用它取得了相對較好的成功,但是由於我們的一些腳本變得越來越複雜,移動到單獨的可執行文件並傳遞參數似乎是有意義的。這就是問題出現的地方:腳本任務之前腳本工作正常。 – Jake

+0

我已經看到它忽略錯誤(拋出的錯誤,在日誌中顯示),並繼續執行腳本之前執行。添加嚴格模式並手動設置EA對我來說有點幫助。 –

回答

0

你可以嘗試的幾件事情:

執行政策

這可能是因爲該腳本不執行可言,也許是因爲該政策被設置爲不執行它們。嘗試直接調用powershell.exe

powershell.exe -ExecutionPolicy Bypass -File C:\build-scripts\bamboo-build-scripts\clear-directory.ps1 

see this answer for more switches

管道

NSClient ++曾經有調用寫在PowerShell中檢查的問題,由於與退出代碼問題。他們的解決方案看起來像這樣:

cmd /c echo C:\build-scripts\bamboo-build-scripts\clear-directory.ps1; exit $LastExitCode | powershell.exe -Command - 

也許這會給出更準確的代碼。

+0

以下是我如何調用腳本的示例:http://i.imgur.com/wAUXJ3D.png如何修改此可執行文件以反映以這種方式運行它? – Jake

+0

@Jake你能否複製並粘貼我發佈到該框中的內容?我沒有使用Bamboo,所以我不確定它是否需要參數等。 – briantist

+1

第二個從命令提示符工作,但將整個事件粘貼到Bamboo作爲可執行文件不起作用。它報告'無法在cmd/c echo C:\ build-scripts \ bamboo-build-scripts \ clear-directory.ps1;退出$ LastExitCode | powershell.exe -Command C:\ build-scripts \ bamboo-build-scripts \ clear-directory.ps1。無論如何都會嘗試運行它。「如果某個具有竹子特定知識的人可以參與進來,那會很棒。 – Jake

相關問題