2016-10-30 4 views
0

Invoke-Sqlcmd2は、スクリプトの残りの部分を失敗させて終了させる方法はありますか?Invoke-Sqlcmd2はエラー時に終了しません

このコマンドが失敗してもスクリプトの残りの部分を実行し続けます。

私はコードを掘り下げましたが、それは-ErrorActionパラメータと関係があります。以下は

スクリプトの行488である:

Catch # For other exception 
{ 
    Write-Verbose "Capture Other Error" 

    $Err = $_ 

    if ($PSBoundParameters.Verbose) {Write-Verbose "Other Error: $Err"} 

    switch ($ErrorActionPreference.tostring()) 
    { 
     {'SilentlyContinue','Ignore' -contains $_} {} 
     'Stop' {  Throw $Err} # Removing this line doesn't work 
     'Continue' { Throw $Err} 
     Default { Throw $Err} 
    } 
} 

「非終了」に、このコマンドを取得する方法上の任意のアイデア?

解決策: ありがとうございました。 try-catchトラップでinvoke-sqlcmd2のエラー処理セクションをラップすることになりました。

+0

Catch {}は、コードによってスローされた例外を処理するためのものです。あなたがスイッチのステートメント、またはコード全体をコメントすれば、それはうまくいくはずです。停止、続行、デフォルトアクションで停止します。 – Martin

+1

それ以上の場合は、$ Errに記載されているエラーを取り除いてください。それは何と言いますか? – Martin

+0

Martinに感謝します。この情報は、上記の解決策に役立ちました。 – Mike

答えて

0

try catchブロック内にInvoke-SQLCMD2を置くと、投げられたエラーを記録することがあります。 そのようにすれば、エラーを処理してスクリプトが実行されます。

関連する問題