как получить $ lastexitcode exe-файла, который выкинул из powershell - PullRequest
1 голос
/ 22 мая 2019
  • Я создаю сценарий powershell , который вызывает несколько других заданий.

  • Я хочу вызвать exe файл иполучить exe файла $LASTEXITCODE в сценарии.

Но в моем сценарии, даже если exe заканчивается с ошибка , $LASTEXITCODEвсегда установлен null.

Пожалуйста, кто-нибудь, дайте мне совет.

. myjob.exe -param1 $param1 -param2 $param
$LASTEXITCODE

, когда я запускаю этот exe файл с CMD, сбор кода выхода установлен %ERRORLEVEL%.

спасибо.

Ответы [ 3 ]

0 голосов
/ 22 мая 2019

Если ваш исполняемый файл вызывает другие процессы, то да, ваши ошибки от них не будут переданы, и вы всегда получите ноль.

Это работает?

. myjob.exe -param1 $param1 -param2 $param 2>&1
$LASTEXITCODE
0 голосов
/ 23 мая 2019

Спасибо, что все дали мне ответ.Я не мог выяснить, почему мой скрипт powershell не может получить код выхода exe-файла.Но я мог поймать код выхода с кодом ниже:

$Process=(Start-Process -FilePath "myjob.exe" -ArgumentList @("-param1",$param1,"-param2",$param) -PassThru -Wait)
$Process.ExitCode

спасибо.

0 голосов
/ 22 мая 2019

Вам не нужно беспокоиться о любом другом значении, кроме 0 в $ LASTEXITCODE.Проведите проверку после выполнения EXE следующим образом:

.\myjob.exe -param1 $param1 -param2 $param
If($LASTEXITCODE -eq 0)
{
    Write-Host "Execution Successful"
} 
else 
{
    Write-Host "Failure in Execution"
} 

Примечание: $LASTEXITCODE содержит код завершения последнего выполнения исполняемого файла Win32, эквивалентный %ERRORLEVEL%

...