Robocopy は 0 より大きいコードで終了しますが、それでも失敗しない可能性があります。PSake は 0 を超えるものをエラーとして検出し、ビルドに失敗します。これは問題ありませんが、なぜこれでも失敗するのですか:
task Deploy {
robocopy $source $dest /NP /S /XO /NFL /NDL /NJH /NJS | Out-Default
if ($lastexitcode -eq 3)
{
Write-Host "Got Here"
$lastexitcode = 0
}
Write-Host "Deploy local complete"
Write-Host $lastexitcode
}
TaskTearDown {
if ($LastExitCode -ne 0) {
write-host "Build failed"
exit 1
}
}
Deploy if ステートメントがヒットし、Write-Host が 0 を正しく出力することを確認できますが、TaskTearDown は最後の終了コードを 3 として検出します! これを修正するにはどうすればよいですか?