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