首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Write-Error显示上面的所有代码?

为什么Write-Error显示上面的所有代码?
EN

Stack Overflow用户
提问于 2014-07-30 02:16:18
回答 1查看 751关注 0票数 1

我最近读到了在PowerShell中不使用Write-Host的原因,所以我开始使用Write-Verbose,Write-Warning和Write- output……但是我从Write-Error得到的输出有一些问题。

下面是一个简单示例,演示了它在脚本中的使用。

代码语言:javascript
复制
1..5 | foreach{
    if ($_ -eq 5){
        Write-Error "Invalid result"
    }
}

当错误出现时,我会得到以下信息。

代码语言:javascript
复制
1..5 | foreach{
    if ($_ -eq 5){
        Write-Error "Invalid result"
    }
} : Invalid result
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

我不明白为什么它会在错误上面显示所有的代码。它只会让屏幕上的输出看起来非常混乱,特别是在长脚本中。例如,我目前正在开发一个脚本来自动化我们的用户创建、修改、禁用和删除过程,它有几百行代码,所以如果我想写一个非终止错误,我不想看到上面的整个代码……这太愚蠢了。

有什么建议吗。我考虑过使用write-warning,但是它确实是一个非终结性错误,我想display...so我正在尝试使用最佳实践。

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2014-07-30 02:42:21

您需要使用Write-Error来输出非终止错误。但是,如果希望错误输出不那么详细,可以将$ErrorView变量设置为CategoryView,例如:

代码语言:javascript
复制
64> $ErrorView = 'CategoryView'
65> 1..5 | foreach{
>>>     if ($_ -eq 5){
>>>         Write-Error "Invalid result"
>>>     }
>>> }
>>>
NotSpecified: (:) [Write-Error], WriteErrorException
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25022255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档