Разница между $? и $LastExitCode в PowerShell

В чем разница между $?и $LastExitCodeв PowerShell?

Я читал об автоматических переменных, и там говорилось:

$? Содержит статус выполнения последней операции. Он содержит TRUE, если последняя операция прошла успешно, и FALSE, если она не удалась.

$LastExitCode Содержит код выхода последней запущенной программы Windows.

В определении $?не объясняется, что означают успех и неудача.


Я спрашиваю, потому что предположил, что $?имеет значение True тогда и только тогда, когда $LastExitCode равен 0, но я обнаружил удивительный контрпример:$LastExitCode=0, но $?=False в PowerShell. Перенаправление stderr на stdout дает NativeCommandError.

55
задан Community 23 May 2017 в 00:31
поделиться