Как я могу отобразить «пустое» сообщение об ошибке в PowerShell без сопровождающей трассировки стека?
Как я могу написать в stderr из PowerShell, или перехватить ошибки, которые
Сообщение об ошибке отображается как ошибка (действительно записывает в stderr, чтобы TeamCity и Octopus воспринимали его как ошибку)Отсутствие мусора в стеке мешает мое красивое, лаконичное сообщение об ошибкеВсе эти годы я пережилthrow
ошибки или запись черезWrite-Error
, но я устал и стар, и в моих сценариях я просто хочу увидеть одно краткое сообщение об ошибке. Я пробовал каждую комбинациюtrap
, throw
, Write-Error
, а также-ErrorAction
, но безрезультатно:
try {
throw "error" #sample code for StackOverflow. In the theater
#of your mind, imagine there is code here that does something real and useful
} catch {
Write-Error "An error occurred attempting to 'do something.' Have you tried rebooting?"
}
Вот пользовательский опыт, который я хочу увидеть:
C:\> & .\Do-Something.ps1
An error occurred attempting to 'do something.' Have you tried rebooting?
C:\> ▏
Вместо этого я получаю:
C:\> & .\Do-Something.ps1
An error occurred attempting to 'do something.' Have you tried rebooting?
At line:1 char:1
+ Do-RealWork
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Do-RealWork
C:\> ▏