PowerShell中的“退出”究竟是什么?

您可以通过键入exit退出PowerShell。 到现在为止还挺好。 但究竟是什么呢?

 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 

所以它既不是一个cmdlet,函数,脚本或程序。 这留下了什么问题。

这不幸的是,也意味着一个不能创build别名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 }" 

在他们中。 我的问题只是要知道这个命令是什么。

这是一个保留的关键字(如return,filter,function,break)。

参考

另外,根据Bruce Payette的Powershell在行动的第7.6.4节:

但是当你想让一个脚本在该脚本中定义的函数内退出时会发生什么? 为了更容易,Powershell具有exit关键字

当然,正如其他人所指出的那样,通过在函数中包装退出来做你想做的事情并不困难:

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