1. ホーム
  2. powershell

PowerShellの "exit "とは一体何なのか?

2023-10-14 07:32:26

質問

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

つまり、コマンドレットでも関数でもスクリプトでもプログラムでもないのです。それは、質問 という疑問が残ります。

このことは、残念ながら 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氏の7.6.4節にあるように Powershell の実行 :

<ブロッククオート

しかし、スクリプトの中で定義された関数の中でスクリプトを終了させたい場合はどうなるでしょうか。 ... これを簡単にするために、Powershellは exitキーワードがあります。 .

もちろん、他の方が指摘されているように、exitを関数でラップすることでやりたいことをやるのは難しいことではありません。

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