当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 创造广阔的视野

作者:精品下载站 日期:2024-12-14 02:44:22 浏览:13 分类:玩电脑

创造广阔的视野


宽视图为所显示的每个对象显示单个值。显示的值可以是 .NET 对象属性的值或脚本的值。默认情况下,该视图没有标签或标题。

宽视角显示

以下示例显示当 Get-Process cmdlet 的输出通过管道传输到 Format-Wide cmdlet 时,Windows PowerShell 如何显示由 Get-Process cmdlet 返回的 System.Diagnostics.Process 对象。 (默认情况下,Get-Process cmdlet 返回表视图。)在此示例中,两列用于显示每个返回对象的进程名称。不显示对象属性的名称,仅显示属性的值。

Get-Process | format-wide
AEADISRV                     agrsmsvc
Ati2evxx                     Ati2evxx
audiodg                      CCC
CcmExec                      communicator
Crypserv                     csrss
csrss                        DevDtct2
DM1Service                   dpupdchk
dwm                          DxStudio
EXCEL                        explorer
GoogleToolbarNotifier        GrooveMonitor
hpqwmiex                     hpservice
Idle                         InoRpc
InoRT                        InoTask
ipoint                       lsass
lsm                          MOM
MSASCui                      notepad
...                          ...

定义宽视角

以下 XML 显示了 System.Diagnostics.Process 对象的宽视图架构。

<View>
  <Name>process</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <GroupBy>...</GroupBy>
  <Controls>...</Controls>
  <WideControl>
    <WideEntries>
      <WideEntry>
        <WideItem>
          <PropertyName>ProcessName</PropertyName>
        </WideItem>
      </WideEntry>
    </WideEntries>
  </WideControl>
</View>

以下 XML 元素用于定义宽视图:

  • View 元素是宽视图的父元素。 (这与表、列表和自定义控件视图的父元素相同。)
  • Name 元素指定视图的名称。所有视图都需要此元素。
  • ViewSelectedBy 元素定义使用视图的对象。该元素是必需的。
  • GroupBy 元素定义何时显示一组新的对象。每当特定属性或脚本的值发生更改时,就会启动一个新组。该元素是可选的。
  • Controls 元素定义由宽视图定义的自定义控件。控件为您提供了一种进一步指定数据显示方式的方法。该元素是可选的。视图可以定义自己的自定义控件,也可以使用格式化文件中任何视图都可以使用的通用控件。有关自定义控件的更多信息,请参阅创建自定义控件。
  • WideControl 元素及其子元素定义视图中显示的内容。在前面的示例中,视图设计为显示 System.Diagnostics.Process.ProcessName 属性。

有关定义简单宽视图的完整格式化文件的示例,请参阅宽视图(基本)。

为您的广阔视野提供定义

宽视图可以通过使用 WideControl 元素的子元素来提供一个或多个定义。通常,一个视图只有一个定义。在以下示例中,视图提供显示 System.Diagnostics.Process.ProcessName 属性的单个定义。宽视图可以显示属性的值或脚本的值(示例中未显示)。

<WideControl>
  <AutoSize/>
  <ColumnNumber></ColumnNumber>
  <WideEntries>
    <WideEntry>
      <WideItem>
        <PropertyName>ProcessName</PropertyName>
      </WideItem>
    </WideEntry>
  </WideEntries>
</WideControl>

以下 XML 元素可用于提供宽视图的定义:

  • WideControl 元素及其子元素定义视图中显示的内容。
  • AutoSize 元素指定是否根据数据的大小调整列大小和列数。该元素是可选的。
  • ColumnNumber 元素指定宽视图中显示的列数。该元素是可选的。
  • WideEntries 元素提供视图的定义。在大多数情况下,一个视图只有一个定义。该元素是必需的。
  • WideEntry 元素提供视图的定义。至少需要一个WideEntry;但是,可以添加的元素数量没有最大限制。在大多数情况下,一个视图只有一个定义。
  • EntrySelectedBy 元素指定按特定定义显示的对象。此元素是可选的,仅当您定义显示不同对象的多个 WideEntry 元素时才需要。
  • WideItem 元素指定视图显示的数据。与其他类型的视图相比,宽控件只能显示一项。
  • PropertyName 元素指定视图显示其值的属性。您必须指定属性或脚本,但不能同时指定两者。
  • ScriptBlock 元素指定其值由视图显示的脚本。您必须指定脚本或属性,但不能同时指定两者。
  • FormatString 元素指定用于显示数据的模式。该元素是可选的。

有关定义宽视图定义的完整格式化文件的示例,请参阅宽视图(基本)。

定义使用宽视图的对象

有两种方法可以定义哪些 .NET 对象使用宽视图。您可以使用 ViewSelectedBy 元素来定义视图的所有定义可以显示的对象,也可以使用 EntrySelectedBy 元素来定义视图的特定定义显示哪些对象。在大多数情况下,视图只有一个定义,因此对象通常由 ViewSelectedBy 元素定义。

以下示例演示如何使用 ViewSelectedBy 和 TypeName 元素定义宽视图显示的对象。您可以指定的 TypeName 元素的数量没有限制,并且它们的顺序并不重要。

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <WideControl>...</WideControl>
</View>

以下 XML 元素可用于指定宽视图使用的对象:

  • ViewSelectedBy 元素定义宽视图显示哪些对象。
  • TypeName 元素指定视图显示的.NET。需要完全限定的 .NET 类型名称。您必须为视图指定至少一种类型或选择集,但可以指定的元素数量没有最大限制。

有关完整格式化文件的示例,请参阅宽视图(基本)。

以下示例使用 ViewSelectedBy 和 SelectionSetName 元素。如果您有一组使用多个视图显示的相关对象,请使用选择集,例如为同一对象定义宽视图和表格视图时。有关如何创建选择集的详细信息,请参阅定义选择集。

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <SelectionSetName>.NET Type Set</SelectionSetName>
  </ViewSelectedBy>
  <WideControl>...</WideControl>
</View>

以下 XML 元素可用于指定宽视图使用的对象:

  • ViewSelectedBy 元素定义宽视图显示哪些对象。
  • SelectionSetName 元素指定可由视图显示的一组对象。您必须为视图指定至少一种选择集或类型,但可以指定的元素数量没有最大限制。

以下示例演示如何使用 EntrySelectedBy 元素来定义由宽视图的特定定义显示的对象。使用此元素,您可以指定对象的 .NET 类型名称、对象选择集或指定何时使用定义的选择条件。有关如何创建选择条件的详细信息,请参阅定义显示数据的条件。

<WideEntry>
  <EntrySelectedBy>
    <TypeName>.NET Type</TypeName>
  </EntrySelectedBy>
</WideEntry>

以下 XML 元素可用于指定宽视图的特定定义所使用的对象:

  • EntrySelectedBy 元素定义根据定义显示哪些对象。
  • TypeName 元素指定定义显示的 .NET。使用此元素时,需要完全限定的 .NET 类型名称。您必须为定义至少指定一种类型、选择集或选择条件,但可以指定的元素数量没有上限。
  • SelectionSetName 元素(未显示)指定可以通过此定义显示的一组对象。您必须为定义至少指定一种类型、选择集或选择条件,但可以指定的元素数量没有上限。
  • SelectionCondition 元素(未显示)指定要使用此定义必须存在的条件。您必须为定义至少指定一种类型、选择集或选择条件,但可以指定的元素数量没有上限。有关定义选择条件的详细信息,请参阅定义显示数据的条件。

在宽视图中显示对象组

您可以将宽视图显示的对象分为几组。这并不意味着您定义一个组,只是每当特定属性或脚本的值发生更改时,Windows PowerShell 就会启动一个新组。在以下示例中,只要 System.Serviceprocess.Servicecontroller.Servicetype 属性的值发生更改,就会启动一个新组。

<GroupBy>
  <Label>Service Type</Label>
  <PropertyName>ServiceType</PropertyName>
</GroupBy>

以下 XML 元素用于定义组何时启动:

  • GroupBy 元素定义启动新组的属性或脚本,并定义该组的显示方式。
  • PropertyName 元素指定每当其值更改时启动新组的属性。您必须指定属性或脚本来启动组,但不能同时指定两者。
  • ScriptBlock 元素指定每当其值更改时启动新组的脚本。您必须指定脚本或属性来启动组,但不能同时指定两者。
  • Label 元素定义显示在每个组开头的标签。除了此元素指定的文本之外,Windows PowerShell 还会显示触发新组的值,并在标签前后添加一个空行。该元素是可选的。
  • CustomControl 元素定义用于显示数据的控件。该元素是可选的。
  • CustomControlName 元素指定用于显示数据的公共控件或视图控件。该元素是可选的。

有关定义组的完整格式设置文件的示例,请参阅宽视图 (GroupBy)。

使用格式字符串

可以将格式化字符串添加到宽视图中,以进一步定义数据的显示方式。以下示例演示如何为 StartTime 属性的值定义格式字符串。

<WideItem>
  <PropertyName>StartTime</PropertyName>
  <FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</WideItem>

以下 XML 元素可用于指定格式模式:

  • WideItem 元素指定视图显示的数据。
  • PropertyName 元素指定视图显示其值的属性。您必须指定属性或脚本,但不能同时指定两者。
  • FormatString 元素指定格式模式,该格式模式定义属性或脚本值在视图中的显示方式
  • ScriptBlock 元素(未显示)指定其值由视图显示的脚本。您必须指定脚本或属性,但不能同时指定两者。

在以下示例中,调用 ToString 方法来格式化脚本的值。脚本可以调用对象的任何方法。因此,如果对象具有带有格式化参数的方法(例如 ToString),则脚本可以调用该方法来格式化脚本的输出值。

<WideItem>
  <ScriptBlock>
    [String]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
  </ScriptBlock>
</WideItem>

以下 XML 元素可用于调用 ToString 方法:

  • WideItem 元素指定视图显示的数据。
  • ScriptBlock 元素(未显示)指定其值由视图显示的脚本。您必须指定脚本或属性,但不能同时指定两者。

参见

  • 宽视角(基本)
  • 宽视角(GroupBy)
  • 编写 PowerShell 格式化文件

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯