ファイルが見つからないという例外をトラップするトラップコマンドを作成しようとしています。これはコードです:トラップの仕組みが分かりません
Trap {
Clear-Host
Write-Host "The file you are looking for does not exist"
}
Get-ItemProperty C:\fake
私はこれを行う方法を誤解していますか?
ファイルが見つからないという例外をトラップするトラップコマンドを作成しようとしています。これはコードです:トラップの仕組みが分かりません
Trap {
Clear-Host
Write-Host "The file you are looking for does not exist"
}
Get-ItemProperty C:\fake
私はこれを行う方法を誤解していますか?
トラップはエラーのみ(パイプラインを停止し、エラーを)終了上で実行するので、最初のあなたは問題のあるコマンドレットのerrorActionという動作を変更する必要があります:
Trap {
Clear-Host
Write-Host "The file you are looking for does not exist"
}
Get-ItemProperty C:\fake -ErrorAction Stop
後まで泡立てるからエラーレコードを抑止するには呼び出し側、トラップ内から現在のスコープからのリターン:
Trap {
Clear-Host
Write-Host "The file you are looking for does not exist"
return
}
Get-ItemProperty C:\fake -ErrorAction Stop
-ErrorAction Stop
パラメータ引数を指定する必要がないために明示的にすべての時間ument、スクリプト/関数の先頭で$ErrorActionPreference
変数を設定します。
$ErrorActionPreference = 'Stop'
または特定のコマンドレットのためにそれを設定する$PSDefaultParameterValues
ハッシュテーブルを使用します。
$PSDefaultParameterValues['Get-ItemProperty:ErrorAction'] = 'Stop'
$PSDefaultParameterValues['Do-OtherStuff:ErrorAction'] = 'Stop'
$PSDefaultParameterValues['Set-*:ErrorAction'] = 'Stop'
ありがとう、私は実際に私の本を理解していないトラップの仕組みの説明 – user2120893
'は、Get-ItemProperty C: \ fake -ErrorAction Stop' – beatcracker
'get-help trap -sh'を実行することをお勧めします。 – LotPings
@ user2120893あなたが直面した実際の問題を含むように質問を更新できますか?これは、同様の問題を抱えている他のユーザーがあなたの質問を見つけて(アップアップして;-)、例えばトラップがエラーを捕捉できなかったのを助けます。エラーが発信者にどのように吹き込まれたかに問題はありましたか?等 – jpaugh