Robocopy zakończy działanie z kodem powyżej 0 i nadal prawdopodobnie nie będzie awarią. PSake wykrywa wszystko powyżej 0 jako błąd i kończy się niepowodzeniem. To jest w porządku, ale dlaczego ten nadal zawiedzie:Awaria programu Psake i robocopy
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
}
}
mogę sprawdzić, czy Deploy if jest trafiony i wyjścia Write-Host 0, poprawnie, jednak TaskTearDown nadal wykrywa ostatni kod wyjścia jako 3! Jak to naprawić?
Nie chciałbym przypisać '$ lastexitcode', to zmienna automatyczna. Assignment prawdopodobnie tworzy zmienną lokalną, a 'TaskTearDown' nadal widzi oryginał. W każdym przypadku spróbuj zastosować inne podejście bez '$ lastexitcode = 0'. –