La consola de PowerShell y el ISE de PowerShell se comportan de manera diferente cuando los ejecutables escriben en la secuencia de error estándar (stderr
). La consola (powershell.exe) lo muestra como salida estándar. Por ejemplo, cuando llego a un estado con Mercurial en un no-repositorio, se escribe en el error estándar:Indicar a PowerShell ISE que no envíe stderr a Write-Error
> hg st -R C:\Windows
abort: repository C:\Windows not found!
Sin embargo, en el PowerShell ISE (powershell_ise.exe
), que el error se pasa a Write-Error
cmdlet de PowerShell:
> 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
¿Hay alguna manera de configurar el ISE para que se comporte como la consola y no envíe la corriente stderr a Write-Error
?
Lo que estoy viendo actualmente con mi Powershell 4 en Win7 es que: PowerShell-Console e ISE se comportan de la manera descrita, * pero * cuando se ejecuta un script powershell '.ps1' desde la consola, o cuando invocando 'powershell script.ps1'from eg una ventana de cmd normal, entonces la corriente de stderr se comportará como en ISE, es decir, usar Write-Error. –