web-dev-qa-db-ja.com

PowerShellの変数でのみエラー出力をキャプチャする方法

PowerShellコマンドのstderr出力を変数に格納したい。ファイルに保存したくないし、標準出力も含めたくありません。エラー出力だけです。

これにより、error.txtという名前のファイルにリダイレクトされます。

&$ command $ params 2> error.txt

これにより、stderrとstdoutの両方が$ output変数にリダイレクトされます。

$ output =&$ command $ params 2>&1

しかし、私はonlyエラー出力を変数に保存したい(上記のerror.txtファイルの内容と同じ)が、ファイルには何も書き込まない。それ、どうやったら出来るの?

19
Klas Mellbourn

コマンドを少し異なる方法で呼び出して、-ErrorVariable PowerShellのパラメーター:

Invoke-Expression "$command $params" -ErrorVariable badoutput

$badoutputにエラー文字列の内容が含まれます。

22
arco444