script - powershell tutorial
¿Qué es exactamente "salir" en PowerShell? (1)
Puede salir de PowerShell escribiendo exit
. Hasta aquí todo bien. Pero, ¿qué es esto exactamente?
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
Por lo tanto, no es un cmdlet, función, script o programa. Deja la pregunta qué es exactamente.
Desafortunadamente, esto también significa que no se pueden crear alias para 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
¿Hay más de esos comandos que no son comandos?
ETA: solo como referencia: sé que puedo simplemente envolverlo en una función. Mi perfil tiene las líneas
# exit with Ctrl+D
iex "function $([char]4) { exit }"
en ellos. Mi pregunta era solo para saber qué es exactamente este comando.
Es una palabra clave reservada (como return, filter, function, break).
Además, según la Sección 7.6.4 de Powershell en Acción de Bruce Payette:
Pero, ¿qué sucede cuando quieres que un script salga desde una función definida en ese script? ... Para hacerlo más fácil, Powershell tiene la palabra clave exit .
Por supuesto, como otros han señalado, no es difícil hacer lo que quieras al envolver la salida en una función:
PS C:/> function ex{exit}
PS C:/> new-alias ^D ex