Powershell将标准输出重定向到标准错误

Powershell将标准输出重定向到标准错误,powershell,stderr,Powershell,Stderr,在Powershell中,如何将标准输出重定向到标准错误 我知道我可以用2>&1做相反的事情,所以我试着: echo "Hello" 1>&2 但是我遇到了一个愚蠢的错误,“1>&2”操作符保留供将来使用。 我这样问是因为能够做到这一点会使我更容易调试另一个问题。请参见假设您完全控制了这些消息,您可以点击.NET来帮助解决此问题: [Console]::Error.WriteLine("Hello") 动力壳道: $host.ui.WriteErrorLine('Hello')

在Powershell中,如何将标准输出重定向到标准错误

我知道我可以用
2>&1
做相反的事情,所以我试着:

echo "Hello" 1>&2
但是我遇到了一个愚蠢的错误,
“1>&2”操作符保留供将来使用。


我这样问是因为能够做到这一点会使我更容易调试另一个问题。请参见

假设您完全控制了这些消息,您可以点击.NET来帮助解决此问题:

[Console]::Error.WriteLine("Hello")
动力壳道:

$host.ui.WriteErrorLine('Hello'


这不是填充自动变量。

首先:你得到的错误没有什么愚蠢的。 例如,在v3中,我们获得了一些额外的重定向选项,最终我想我们将能够根据需要将verbose重定向到warning,debug重定向到error,并将输出重定向到error

在这之前,您可以尝试模拟这种行为,至少在输出方面是这样。 不确定这是否能解决您的问题,但您可以:

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

巴特克

唉,不可能将标准输出重定向到标准错误。我认为这是一个不幸的疏忽。希望在未来版本的Powershell中能够修复此问题。

您是否正在从Powershell调用一个正在写入标准输出的外部程序?那么,为什么不捕获它的输出并将其视为写入标准错误<代码>$output=&externalprog.exe 2>&1。该变量存储要发送到标准错误的输出。