在 Powershell 中,如何将标准输出重定向到标准错误?
我知道我可以与之相反,2>&1
所以我尝试了:
echo "Hello" 1>&2
但我得到一个愚蠢的错误The '1>&2' operator is reserved for future use.
我问是因为能够做到这一点将使我更容易调试另一个问题。请参阅$LastExitCode=0 但 $?=False 在 PowerShell 中。将标准错误重定向到标准输出会产生 NativeCommandError
在 Powershell 中,如何将标准输出重定向到标准错误?
我知道我可以与之相反,2>&1
所以我尝试了:
echo "Hello" 1>&2
但我得到一个愚蠢的错误The '1>&2' operator is reserved for future use.
我问是因为能够做到这一点将使我更容易调试另一个问题。请参阅$LastExitCode=0 但 $?=False 在 PowerShell 中。将标准错误重定向到标准输出会产生 NativeCommandError
唉,不可能将标准输出重定向到标准错误。我认为这是一个不幸的疏忽。让我们希望这在 Powershell 的未来版本中得到修复。
首先:你得到的错误没有什么愚蠢的。例如,在 v3 中,我们获得了一些额外的重定向选项,最终我想我们将能够根据需要将详细重定向到警告、调试到错误和输出到错误。
在此之前,您可以尝试模拟这种行为,至少对于输出。不确定这是否能解决您的问题,但您可以:
echo "foo" | Write-Error
yourproram.exe | Write-Error
HTH 巴特克
假设你完全控制了这些消息,你可以利用 .NET 来帮助解决这个问题:
[Console]::Error.WriteLine("Hello")
Powershell方式:
$host.ui.WriteErrorLine('Hello'
)
这不填充$error
自动变量。