在Powershell中,我如何将标准输出重定向到标准错误?
我知道我可以与2>&1
进行对话,所以我尝试了:
echo "Hello" 1>&2
但我收到了一个愚蠢的错误The '1>&2' operator is reserved for future use.
我问,因为能够做到这一点会让我更容易调试另一个问题。见$LastExitCode=0 but $?=False in PowerShell. Redirecting stderr to stdout gives NativeCommandError
答案 0 :(得分:2)
唉,不可能将标准输出重定向到标准错误。我认为这是一个不幸的遗漏。我们希望在未来版本的Powershell中修复此问题。
答案 1 :(得分:1)
假设您完全控制了这些消息,您可以使用.NET来帮助解决这个问题:
[Console]::Error.WriteLine("Hello")
答案 2 :(得分:1)
Powershell方式:
$host.ui.WriteErrorLine('Hello'
)
这不会填充$error
自动变量。
答案 3 :(得分:1)
首先:没有任何愚蠢的错误。 在第3版中,例如我们得到了一些额外的重定向选项,最后我想我们可以根据需要将详细信息重定向到警告,调试错误,然后输出到错误。
在此之前,您可以尝试模拟此行为,至少对于输出。 不确定这是否能解决您的问题,但您可以:
echo "foo" | Write-Error
yourproram.exe | Write-Error
HTH 鲍尔泰克