Пользовательская подсказка powershell очищает $ lastexitcode - PullRequest
5 голосов
/ 16 мая 2011

Мой профиль powershell имеет настраиваемое приглашение powershell, которое, к сожалению, приводит к потере значений $ lastexitcode. Например, если у меня есть сценарий powershell «fail.ps1» с содержимым «exit 123», то при запуске сценария $? равно $ false, а $ lastexitcode равно 0. Если вместо этого я запускаю powershell, не загружая свой профиль с помощью настраиваемого приглашения, после запуска fail.ps1 тогда $ lastexitcode равен 123.

Кто-нибудь видел эту проблему раньше? Есть ли способ сохранить $ lastexitcode при генерации приглашения?

Я столкнулся с этим при использовании Posh-git, https://github.com/dahlbyk/posh-git, хорошая подсказка powershell для git.

Ответы [ 2 ]

4 голосов
/ 16 мая 2011

Проблема может быть решена путем захвата $LASTEXITCODE в начале приглашения и восстановления его в конце:

function prompt {
    $realLASTEXITCODE = $LASTEXITCODE

    # ...

    $LASTEXITCODE = $realLASTEXITCODE
 }
1 голос
/ 19 сентября 2013

Вам нужно сделать это, чтобы оно заработало:

function prompt {
    $realLASTEXITCODE = $global:LASTEXITCODE

    # ...

    $global:LASTEXITCODE = $realLASTEXITCODE
    # cleanup
    Remove-Variable realLASTEXITCODE
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...