1

私は最近、PowerShell で Write-Host を使用しない理由について読んでいたので、Write-Verbose、Write-Warning、および Write-Output を使い始めました...しかし、取得している出力に問題があります。書き込みエラーから。

これをスクリプトで使用する簡単な例を次に示します。

1..5 | foreach{
    if ($_ -eq 5){
        Write-Error "Invalid result"
    }
}

エラーが表示されると、次のようになります。

1..5 | foreach{
    if ($_ -eq 5){
        Write-Error "Invalid result"
    }
} : Invalid result
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

エラーの上にすべてのコードが表示される理由がわかりません。特に長いスクリプトでは、画面上の出力が非常に乱雑に見えるだけです。たとえば、現在、ユーザーの作成、変更、無効化、および削除プロセスを自動化するスクリプトを開発していますが、それは数百行あるため、終了しないエラーを書きたい場合は、その上のコード全体を見たくありません....それはばかげています。

助言がありますか。書き込み警告を使用することを考えましたが、実際には表示したい終了しないエラーです...なので、ベストプラクティスを使用しようとしています。

ありがとう、

4

1 に答える 1

1

Write-Error非終了エラーを出力するために使用する必要があります。ただし、エラー出力の冗長性を低くしたい場合は、$ErrorView変数を次のように設定できますCategoryView

64> $ErrorView = 'CategoryView'
65> 1..5 | foreach{
>>>     if ($_ -eq 5){
>>>         Write-Error "Invalid result"
>>>     }
>>> }
>>>
NotSpecified: (:) [Write-Error], WriteErrorException
于 2014-07-29T18:42:21.227 に答える