Windows PowerShell でスクリプトを終了する

Marion Paul Kenneth Mendoza 2023年6月9日
  1. Windows PowerShell で Exit コマンドを使用してスクリプトを終了する
  2. Windows PowerShell で Throw コマンドを使用してスクリプトを終了する
  3. Return コマンド
  4. break コマンド
  5. continue コマンド
Windows PowerShell でスクリプトを終了する

Windows PowerShell でスクリプトを終了する方法はたくさんあります。ただし、コンテキストの観点からは似ているように聞こえるかもしれませんが、機能に関しては実際の目的は異なります。

この記事では、Windows PowerShell でスクリプトを終了し、それらを 1つずつ定義する方法を列挙します。

Windows PowerShell で Exit コマンドを使用してスクリプトを終了する

Exit コマンドは、その名前から派生したスクリプトを終了します。開いているセッションがない場合、このコマンドはシェルまたはスクリプトウィンドウも閉じます。Exit コマンドは、終了コードを使用してフィードバックを提供する場合にも役立ちます。

exit

exit コマンドだけを実行すると、終了コード 0(デフォルト)(成功または正常終了を意味する)、または 1(失敗またはキャッチされないスローを意味する)を持つことができます。

終了コードの優れている点は、終了コードが完全にカスタマイズ可能であることです。終了コードが整数である限り、終了コードは有効です。さらに、最後の終了コードを知るために、変数 $LASTEXITCODE を出力することができます。

Exit.ps1

Write-Output 'Running sample script.'
exit 200

サンプルコード:

PS C:\>powershell.exe .\Exit.ps1
PS C:\>Running sample script.
PS C:\>Write-Output $LASTEXITCODE
PS C:\>200

また、実行中の PowerShell スクリプトから exit コマンドを使用して別の PowerShell ファイルを呼び出すと、実行中のスクリプトも終了することに注意してください。

Windows PowerShell で Throw コマンドを使用してスクリプトを終了する

Throw コマンドは、終了コードを使用した Exit コマンドに似ていますが、はるかに有益です。コマンドとカスタム式を使用して、終了エラーを生成できます。通常、Throw コマンドは、Try-Catch 式内の Catch ブロック内で使用され、例外を適切に記述します。

サンプルコード:

Try{
    $divideAnswer = 1/0
}Catch{
    Throw "The mathematical expression has a syntax error"
}

出力:

The mathematical expression has a syntax error
At line:4 char:5
+     Throw "The mathematical expression has a syntax error"
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (The mathematica... a syntax error:String) [], RuntimeException
    + FullyQualifiedErrorId : The mathematical expression has a syntax error

Return コマンド

Exit コマンドとは異なり、Return コマンドは前の呼び出しポイントに戻り、スクリプトウィンドウを閉じません。

通常、Return コマンドを使用して、スクリプト内のどこかで実行された関数から値を返します。

サンプルコード:

Function sumValues($int1,$int2){
	Return ($int1 + $int2)
}

# The function sumValues is called below, and the script will return to 
# the same line with a value and store it in the output variable
$output = sumValues 1 2 

Write-Output $output

出力:

3

break コマンド

break コマンドを使用して、ループとケースを終了します。

サンプルコード:

$numList = 1,2,3,4,5,6,7,8

foreach($number in $numList){
    if ($number -eq 8){
        #Terminate loop if number variable is equal to 8
         break
    }

    Write-Output $number
}

出力:

1
2
3
4
5
6
7

ネストされたループがある場合は、break コマンドが呼び出された場所からループを解除するだけです。

サンプルコード:

While ($true) {
    While ($true) {
        #The break command will only break out of this while loop
        break
    }
   #The script will continue to run on this line after breaking out of the inner while loop
}

特定のネストされたループから抜け出したい場合、break コマンドはそのパラメーターとしてラベルを使用します。

While ($true) {
    :thisLoop While ($true) {
        While ($true) {
	        #The break command below will break out of the `thisLoop` while loop.
            Break thisLoop
        }
    }
}

continue コマンド

continue コマンドは、ループレベルでスクリプトも終了します。それでも、ループ全体を即座に終了する代わりに、continue コマンドは現在の反復のみを終了し、すべての反復が処理されるまでループを継続します。

これは、ループを実行するときに何かをスキップするコマンドであると言えます。

サンプルコード:

$numList = 1,2,3,4,5,6,7,8

foreach($number in $numList){
    if ($number -eq 2){
        #The continue command below will skip number 2 and will directly process the next iteration, resetting the process to the top of the loop.
        continue
    }

    Write-Output $number
}

出力:

1
3
4
5
6
7
8
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - PowerShell Script