当可执行文件写入标准错误流 ( stderr
) 时,PowerShell 控制台和 PowerShell ISE 的行为不同。控制台 (powershell.exe) 将其显示为标准输出。例如,当我在非存储库上获得 Mercurial 状态时,它会写入标准错误:
> hg st -R C:\Windows
abort: repository C:\Windows not found!
但是,在 PowerShell ISE ( powershell_ise.exe
) 中,该错误会传递给 PowerShell 的Write-Error
cmdlet:
> hg st -R C:\Windows
hg.exe : abort: repository C:\Windows not found!
At line:1 char:3
+ hg <<<< st -R C:\Windows
+ CategoryInfo : NotSpecified: (abort: repository C:\Windows not found!:String) [], RemoteExcepti
on
+ FullyQualifiedErrorId : NativeCommandError
有没有办法将 ISE 配置为像控制台一样运行,而不是将 stderr 流发送到Write-Error
?