2

Powershellで、標準出力を標準エラーにリダイレクトするにはどうすればよいですか?

私は私がと会話をすることができることを知っている2>&1ので、私は試しました:

echo "Hello" 1>&2

しかし、私はばかげたエラーを受け取りますThe '1>&2' operator is reserved for future use.

これができると、別の問題をデバッグしやすくなるので、お願いします。PowerShellでは$LastExitCode= 0が$?=Falseを参照してください。stderrをstdoutにリダイレクトすると、NativeCommandErrorが発生します

4

4 に答える 4

2

残念ながら、標準出力を標準エラーにリダイレクトすることはできません。残念ながらそれは省略だと思います。これがPowershellの将来のバージョンで修正されることを期待しましょう。

于 2012-05-24T15:53:23.747 に答える
1

メッセージを完全に制御していると仮定すると、.NETを利用してこれを支援できます。

[Console]::Error.WriteLine("Hello")
于 2012-05-18T13:25:55.610 に答える
1

PowerShellの方法:

$host.ui.WriteErrorLine('Hello')。

$errorこれは自動変数を埋めません。

于 2012-05-18T13:27:29.500 に答える
1

まず、エラーが発生しても愚かなことは何もありません。たとえば、v3では、いくつかの追加のリダイレクトオプションがあり、最終的には、必要に応じて、詳細を警告にリダイレクトし、デバッグをエラーに、出力をエラーにリダイレクトできるようになると思います。

それが起こる前に、少なくとも出力のために、この振る舞いをエミュレートすることを試みることができます。それで問題が解決するかどうかはわかりませんが、次のことができます。

echo "foo" | Write-Error
yourproram.exe | Write-Error

HTH Bartek

于 2012-05-18T17:52:01.957 に答える