PowershellのExit関数について

1224 ワード

Powershellは「EXIT」キーワードをサポートしています.その範囲は役割ドメインに基づいており、あなたが想像していた仕事のやり方よりも異なる可能性があります.
この関数をテストしてみましょう.

   function test 
  
{
  'A'
  exit
  'B'
}

スクリプトを保存して呼び出すと、次のようになります.
 
  
PS> C:\Users\Tobias\Documents\PowerShell\test12343.ps1
A

このとき「exit」はこの関数を早すぎる.しかし、現在のスクリプトを保存していないか、インタラクティブな関数を呼び出すと、Powershellホスト全体が閉じます.
「Exit」は、関数だけでなく現在呼び出されているスクリプトを終了します.次のようにスクリプトに保存すると、意外な発見があるかもしれません.
 
  
function test
{
  'A'
  exit
  'B'
}
 
'Start'
test
'Stop'

結果はこうです.
 
  
PS<> C:\Users\Tobias\Documents\PowerShell\test12343.ps1
Start
A

コード「Stop」は実行されていないことに注意してください.「Exit」は自己関数を終了し、役割ドメインの後続の実行を停止します.インタラクティブ関数を呼び出すとPowershellがオフにならないのはなぜですか?(これは、あなたが呼び出した役割ドメインの宿主がそれ自体であるためです).
だから「exit」をどう使うの?スクリプトが動作している間にエラーレベル数を設定できます.このレベル数は呼び出しから取得できます.Powershell計画タスクを作成したり、Powershellを通過したりします.exeはバッチファイルを実行します.この場合、「Exit」後に指定した異なる数字は、バッチの%ERRORLEVEL%のようにスクリプト外の終了コードになります.