Windows PowerShell でスクリプトを終了する
-
Windows PowerShell で
Exit
コマンドを使用してスクリプトを終了する -
Windows PowerShell で
Throw
コマンドを使用してスクリプトを終了する -
Return
コマンド -
break
コマンド -
continue
コマンド
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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn