PowerShell中$ ErrorView的用途是什么?

2023-11-18 11:20:18

$Errorview变量确定PowerShell中错误消息的显示格式。在PowerShell 7之前,主要有两个视图,

  • 普通视图(默认视图)

  • 分类视图

在PowerShell版本7中,包括了一个新的其他错误视图类别,现在版本7有3个$ErrorView类别。

  • 简洁视图(默认)

  • 普通视图

  • 分类视图

我们将一一理解每个视图。

A)普通视图

它是PowerShell版本7之前的默认视图,并且会产生详细的多行错误和位噪声。它包括异常名称,类别,错误的行号等。

$ErrorView = 'NormalView'
Get-ChildItem C:\NoDirectory

输出结果

Get-ChildItem : Cannot find path 'C:\NoDirectory' because it does not exist.
At line:1 char:1
+ Get-ChildItem C:\NoDirectory
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\NoDirectory:String) [Get-ChildItem],
ItemNotFoundException
+ FullyQualifiedErrorId :
PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

B)类别视图

专为生产环境设计的单衬板和结构化视图。其格式如下。

{Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}

例如

$ErrorView = 'CategoryView'
Get-ChildItem C:\NoDirectory

输出结果

ObjectNotFound: (C:\NoDirectory:String) [Get-ChildItem], ItemNotFoundException

C)简洁视图

PowerShell版本7中的默认视图。它提供了简洁的错误消息。如果错误来自命令行,则为单行错误消息。

例如

$ErrorView = 'ConciseView'
Get-ChildItem C:\NoDirectory

输出结果

Get-ChildItem: Cannot find path 'C:\NoDirectory' because it does not exist.

如果错误来自脚本,则它是多行错误消息,其中包含错误消息和错误的行号。

$ErrorView = 'ConciseView'
PS C:\> C:\Temp\TestPS1.ps1

输出结果

Error message in Concise view
Get-ChildItem: C:\Temp\TestPS1.ps1:2
Line |
2 | Get-ChildItem c:\nonDirectory
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot find path 'C:\nonDirectory' because it does not exist.
  • 作者:
  • 原文链接:
    更新时间:2023-11-18 11:20:18