2017-04-26 4 views
0

私はスクリプトにエラー処理を追加しようとしていますので、実行している人はtxtファイルのエラーを見ることができます。 私は試して、エラーをキャプチャするためにキャッチすることができますが、私が持っている問題は、スクリプトの何百もの行を持っているエラーのキャプチャに変数を持たないいくつかのCmdlets どのように私は、すべての関数とtxtファイルにエクスポートして、各行を-erroraction stopに追加して、ブロックに入れて、ファイルに送るout-fileコマンドを持つcatchブロックでブロックします。PowerShellの高度な機能でのエラー処理

おかげで、私は、ロギングが必要な場合

+0

を意味しますか? – Royston

答えて

0

、私は常にちょうどcatchブロックでこのような何かを投げる:あなたは、コードの個々の行に-ErrorVariable追加して、+ errvarを使用して、それをキャプチャ

$ErrorName = $Error[0].exception.GetType().fullname 
$ErrorDescription = $Error[0].exception.Message 
"Something went wrong gathering the account names. Cannot continue processing, a fatal error has occurred... `r`n $ErrorName `r`n $ErrorDescription `r`n SCRIPT TERMINATED `r`n " | Out-file -filepath $ErrorLog -append 
+0

私は285行のコードを持っていますが、どうすればそれをキャプチャするべきですか? – Royston

+0

@Royston私は数千行のスクリプトを用意していますが、エラーの可能性がある場所であればtry-catchブロックで作業します。もう1つの選択肢は、$ Error変数はすべてのエラーを配列形式にキャッチし、最新のものは常に[0]です。私は上書きする前に最大256のエラーをキャプチャすると信じていますが、それは変更できます。理論的には、エラー変数をログファイルに出力することはできますが、それを試したことはありません。 – Nick

関連する問題