Что такое $? псевдоним для в Powershell?

В сценарии, который мне показали сегодня, была строка:

If ($?) {
#do some stuff
}

Я никогда не видел знак доллара, знак вопроса, псевдоним $? до и я не могу определить через Google, для чего он.

Когда я выполняю его в окне powershell, оно обычно возвращает True, однако иногда возвращает False. Мне показалось, что мое тестирование показало, что он возвращает False, когда предшествующий ему код выполняется с ошибкой (и в контексте сценария, который я видел в этом, это может иметь смысл), так что это, возможно, альтернативный способ обработки TRY .. CATCH сценарий.

Пример:

PS C:\Users\me> $?
True
PS C:\Users\me> $?
True
PS C:\Users\me> blah
blah : The term 'blah' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ blah
+ ~~~~
+ CategoryInfo          : ObjectNotFound: (blah:String) [],         CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\me> $?
False
PS C:\Users\me> $?
True

Может ли кто-нибудь проверить для меня, так ли это, или это служит какой-то другой цели?

Ответы на вопрос(1)

Ваш ответ на вопрос