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