1
我運行一個善變的命令,因爲水銀是不是返回0,但1psake錯誤代碼管理
一個失敗的任務時善變的回報1並不意味着它是一個錯誤,但沒有什麼做的。 根據文檔:
Returns 0 if push was successful, 1 if nothing to push.
我該如何處理我的任務,所以當汞命令返回0或1它不會打破的回報。
這裏是失敗函數
Function Invoke-HgBookmark([string]$bookmarkname)
{
$repo = GetCredentials
& $hg.file bookmark -f $bookmarkname
Invoke-Expression "$($hg.file) push -B $bookmarkname $repo"
if ($LASTEXITCODE -eq 0 -Or $LASTEXITCODE -eq 1)
{
return 0
}
else
{
return -1
}
}
Psake呼喚我的功能與此代碼:
try {
$global:lastexitcode = 0
& $cmd
if ($lastexitcode -ne 0) {
throw ("Exec: " + $errorMessage)
}
break
}
看起來你的函數試圖處理1的退出碼。函數返回'-1'還是以其他方式失敗?如果它返回'-1' - 粘貼在'Write-Host'$ LastExitCode「'中,以查看您正在獲取的退出代碼。你的'if'表達式邏輯看起來不錯。順便說一句,Invoke-Expression有什麼用?我不明白爲什麼你不能像在iex上面的行那樣調用$ hg.file。 –
其實,我正在學習PowerShell ...我不需要iex。回到我的問題中,我添加了psake正在使用的代碼,並且我不能覆蓋$ lastexitcode以防hg返回1 – Swell
啊,在這種情況下,請嘗試用'$ LastExitCode = x'替換'Return x'。 –