Что такое "выход" в PowerShell?

Вы можете выйти из PowerShell, набрав exit. Все идет нормально. Но что это такое?

PS Home:\> gcm exit
Get-Command : The term 'exit' is not recognized as the name of a cmdlet, function, script file, or operable program. Ch
eck the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:4
+ gcm <<<<  exit
    + CategoryInfo          : ObjectNotFound: (exit:String) [Get-Command], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Commands.GetCommandCommand

Таким образом, это не является командлетом, функцией, script или программой. Это оставляет вопрос, что именно это.

К сожалению, это также означает, что нельзя создавать псевдонимы до exit:

PS Home:\> New-Alias ^D exit
PS Home:\> ^D
Cannot resolve alias '♦' because it refers to term 'exit', which is not recognized as a cmdlet, function, operable prog
ram, or script file. Verify the term and try again.
At line:1 char:2
+ ♦ <<<<
    + CategoryInfo          : ObjectNotFound: (♦:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : AliasNotResolvedException

Есть ли еще такие команды, которые не являются командами?

ETA: Только для справки: я знаю, что могу просто включить его в функцию. Мой профиль имеет строки

# exit with Ctrl+D
iex "function $([char]4) { exit }"

в них. Мой вопрос состоял в том, чтобы знать, что именно эта команда.

Ответ 1

Это зарезервированное ключевое слово (например, return, filter, function, break).

Ссылка

Кроме того, согласно разделу 7.6.4 Брюса Пайетта Powershell в действии:

Но что происходит, когда вы хотите, чтобы script вышел из функции, определенной в этом script? ... Чтобы сделать это проще, Powershell имеет ключевое слово exit.

Конечно, как указывали другие, не сложно делать то, что вы хотите, обернув выход в функцию:

PS C:\> function ex{exit}
PS C:\> new-alias ^D ex