Получение $LastExitCode в PowerShell при вызове Visual Build с использованием PowerShell

Я хочу вызвать сборку VisualBuild из PowerShell и получить последний код выхода.

Я вызываю Build, используя.

Start-Process -FilePath $VisualBuild -ArgumentList "/b Somescript.bld" -PassThru -NoNewWindow

Я уже пытался использовать механизм try catch, но это привело к тому, что LastExitCode стал равным 0, даже если Build Failed.

При использовании чего-то вроде

$BuildProcess = Start-Process -FilePath $VisualBuild -ArgumentList "/b Somescript.bld" -PassThru -NoNewWindow
Write-Host "$($BuildProcess.ExitCode)"

Мой скрипт получает зависание после выполнения и отображения того, что сборка не удалась, но вывод LastExitCode никогда не отображается.

Переменная $VisualBuild содержит полный путь к VisBuildCmd.exe

1 ответ

Решение

Я думаю, что вам просто нужно получить ваш последний код выхода сразу после вашей команды и сохранить его в переменной:

Start-Process -FilePath $VisualBuild -ArgumentList "/b Somescript.bld" -PassThru -NoNewWindow
$MyLastExitCode = $LastExitCode

Write-Host "LastExitCode: $MyLastExitCode"

У меня были предыдущие проблемы, когда я запускал команду до того, как отобразил свой последний код выхода, и он всегда был 0, Это может быть похожая проблема.

Другие вопросы по тегам