考えたことがありますか、「PowerShellでスクリプトを終了する最良の方法は何ですか?」PowerShell終了コマンドでPowerShellセッションを終了しますか?カスタム終了コードを返す方法は?それでは、ラッキーです!
このガイドでは、これらの質問やその他の疑問に答えます。PowerShellスクリプトまたはセッションを終了する方法について学びます。
さあ、いくつかのPowerShellセッションとスクリプトを終了する準備をしましょう!
前提条件
このガイドに従うには、マシンにWindows PowerShellまたはPowerShell Coreがインストールされていることを確認してください。この記事の例では、PowerShell 7.1.4を使用します。
PowerShell終了コマンドを使用してコンソールとスクリプトを終了する
このチュートリアルでは、ますます多くのreserved words
の1つであるexit
キーワードについて説明しましょう。予約語とは、PowerShellに組み込まれた文字のセットで、あるアクションを実行します。 exit
キーワードの場合、そのアクションはPowerShellをPowerShellセッションから終了させることです。
練習してみましょう! PowerShellコンソールセッションを開き、exit
を入力してEnterキーを押します。 PowerShellコンソールがすぐに閉じられます。
このキーワードは、コンソールセッションではなく、スクリプトを終了させることもできます。スクリプトにexit
キーワードを含め、exit
を使用するとスクリプトのみが終了し、スクリプトが実行されたコンソールセッション全体は終了しません。
以下のコードをメモ帳にコピーして、スクリプトをtest.ps1としてC:\Tempディレクトリに保存してください。次に、以下のスクリーンショットに示すように、コマンド.\text.ps1
を実行してPowerShellスクリプトファイルを実行します。PowerShellはセッションを閉じる代わりに、スクリプトを終了し、制御を現在のPowerShellセッションのプロンプトに戻します。

exit
keyword stopped the script execution, but the console is still running 終了コードを使用したフィードバックの受信および提供
exit
コマンドは、スクリプトまたは関数がいくつかのコードを実行して終了する必要がある場合に役立ちます。ただし、スクリプトが正常に実行されたかどうかに関する情報は提供されません。
PowerShellがスクリプトの最後のコマンドを実行すると、その最後のコマンドの終了コードを$LASTEXITCODE
変数に格納します。
デフォルトの終了コードは2つあります:
- 0 – 成功:通常の終了
- 1 – 失敗:未処理の例外
PowerShellは、終了コードを0
および1
に制限しません。 PowerShellでは、整数であれば、カスタム終了コードを返すことができます。
終了コードの値の範囲は、プラットフォームに依存します。 Windowsでは、32ビットの符号付き整数が許可されます。 Unixでは、正の8ビット整数のみが許可されます。
カスタム終了コードでPowerShellを終了するには、終了キーワードの引数として終了コードを指定できます。
以下のコードを既存のtest.ps1ファイルにコピーして、.\Test.ps1
コマンドでスクリプトを実行します。 $LASTEXITCODE
変数の内容を確認します。 PowerShellに55
の終了コードで終了するよう指示すると、下記のように実行されました。

ブレークを使用してループから抜け出す
関数を終了するなど、exit
動作が許容できない瞬間があります。 break
キーワードがどのように役立つかを確認しましょう。
break
キーワードは、PowerShellにループを停止させます。 break
の後、コードは次のイテレーションで実行が継続されます。
ループ内での休憩は、foreach、while、do-while、およびswitch文などのPowerShellループで役立ちます。コードが完了する前にコードが停止する場所を制御できます。
ループから抜け出す練習をしましょう。以下に、forループを使用したコードのスニペットが示されています。forループは、内部にbreak
がない場合、10回繰り返されます。イテレータが8に等しくなるとbreak
キーワードがトリガーされます。PowerShellはbreak
キーワードを見つけると、ループを停止します。
i
が8に等しくなると、PowerShellがループを停止することがわかります。コードは9には到達しません。あなたはforループから正常に抜け出しました。

Returnを使用してコードの実行をリダイレクト
return
キーワードは、以前のキーワードとは少し異なります。コマンドを終了したり中断したりするのではなく、コードの実行をリダイレクトします。このキーワードは、呼び出し元に実行を返し、同時に値を返すことができます。そして、exit
と同様に、整数だけでなく、任意のタイプを返すことができます!これらの振る舞いにより、return
キーワードは以前のキーワードよりも柔軟性が高くなります。
以下は、実例を使ってその動作を見てみましょう:単語をペアにする関数を作成することを例にします。以下のコードをあなたのPowerShellセッションにコピーしてください:
関数から返される値が出力に表示されることに注目してください。

return
keyword WordPairing
関数によって生成された$output
を、$output
が呼び出される場所にリダイレクトします。
結論
このガイドでは、PowerShellセッションやスクリプトを終了するさまざまな方法を学びました。各方法は特定のキーワードに依存しています。各キーワードには特定のユースケースがあります。適切に使用すると、これらの各キーワードはスクリプトの動作を制御するための巨大なコントロールを提供します。
PowerShellセッションを終了するさまざまな方法を知った今、この新しい知識を使ってスクリプトをどのように改善する予定ですか?