powershell 例外処理とexit
通常、powershellでexit 0 が正常終了、0以外が異常終了となる。
終了コードは「%errorlevel%」環境変数に格納されるため、PowerShellスクリプトを実行した後、echo %errorlevel%と記述して終了コードを表示できる。
powershellスクリプト側はこんな感じ。
try { # 例外が発生する可能性のあるコード } catch { # 例外が発生した場合の処理(エラーメッセージを表示してみよう) Write-Host "An error occurred: $($_.Exception.Message)" exit 1 } # 正常終了 exit 0
vbs側では、こんな感じ。
'文字コード:cp932 (sjis) Option Explicit ' エラーが発生するとダイアログが出て処理が終わらない問題対策 On Error Resume Next Dim objShell Dim PS1File Dim Arguments Dim exitcode Set objShell = CreateObject( "WScript.Shell" ) PS1File = "hoge.ps1" ' 必要に応じて引数を与える(日本語の受け渡しは注意) Arguments = "" '-------------------------------------------------------------------- exitcode = objShell.run ("PowerShell.exe -ExecutionPolicy RemoteSigned -File """ & PS1File & """ " & Arguments, 0, True) set objShell = Nothing