ファイルが見つからないという例外をトラップするトラップ コマンドを作成しようとしています。これはコードです:
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
パラメータ引数を常に明示的に指定する必要がないようにするに$ErrorActionPreference
は、スクリプト/関数の開始時に変数を設定します。
$ErrorActionPreference = 'Stop'
または、$PSDefaultParameterValues
ハッシュテーブルを使用して特定のコマンドレットに設定します。
$PSDefaultParameterValues['Get-ItemProperty:ErrorAction'] = 'Stop'
$PSDefaultParameterValues['Do-OtherStuff:ErrorAction'] = 'Stop'
$PSDefaultParameterValues['Set-*:ErrorAction'] = 'Stop'