Możesz zamknąć PowerShell, wpisując exit
. Jak na razie dobrze. Ale co to właściwie jest?Czym dokładnie jest "wyjście" w 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
Nie jest to więc cmdlet, funkcja, skrypt lub program. Pozostawia to pytanie dokładnie tak, jak jest to .
Oznacza to niestety, że nie można tworzyć aliasy do 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
Czy istnieją więcej takich poleceń, które są żadne polecenia?
ETA: Dla odniesienia: Wiem, że mogę po prostu zawinąć go w funkcję. Mój profil ma w sobie linie
# exit with Ctrl+D
iex "function $([char]4) { exit }"
. Moje pytanie dotyczyło tylko tego, czym dokładnie jest to polecenie.
Według 'Get-Help Exit-PSSession' _You mogą również korzystać słowo kluczowe Exit, aby zakończyć sesję interaktywną. Efekt jest taki sam jak przy użyciu Exit-PSSession. Tak więc jest napisane, że 'Exit' jest słowem kluczowym. Wydaje się jednak, że cytat nie może sugerować, że 'Exit' i' Exit-PSSession' są równoważne we wszystkich przypadkach. Słowo kluczowe exit może być użyte z argumentem, który można przekonwertować na '[int]', iw takim przypadku będzie to kod wyjścia. Na przykład 'Exit 42'. –