Консоль PowerShell и интегрированная среда сценариев PowerShell ведут себя по-разному, когда исполняемые файлы записывают в стандартный поток ошибок (stderr
). Консоль (powershell.exe) отображает его как стандартный вывод. Например, когда я получаю статус Mercurial в нерепозитории, он пишет стандартную ошибку:
> hg st -R C:\Windows
abort: repository C:\Windows not found!
Однако в PowerShell ISE (powershell_ise.exe
) эта ошибка передается командлету PowerShell Write-Error
:
> 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
?
.ps1
из консоли или при вызовеpowershell script.ps1
из, например, нормальные окна cmd, тогда поток stderr будет вести себя как в ISE, то есть использовать Write-Error. - person Martin Ba   schedule 25.10.2016