【发布时间】:2013-05-14 21:21:51
【问题描述】:
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!我该如何解决?
【问题讨论】:
-
我不会分配
$lastexitcode,它是一个自动变量。赋值可能会创建一个局部变量,TaskTearDown仍然可以看到原始变量。无论如何,请尝试使用不带$lastexitcode = 0的不同方法。
标签: powershell robocopy psake