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

[玩转系统] Cmdlet 参数集

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

Cmdlet 参数集


PowerShell 使用参数集使您能够编写可以针对不同场景执行不同操作的单个 cmdlet。参数集使您能够向用户公开不同的参数。并且,根据用户指定的参数返回不同的信息。

参数集示例

例如,PowerShell Get-EventLog cmdlet 根据用户是否指定 ListLogName 参数返回不同的信息。如果指定了 List 参数,则 cmdlet 返回有关日志文件本身的信息,但不返回它们包含的事件信息。如果指定了 LogName 参数,则 cmdlet 将返回有关特定事件日志中的事件的信息。 ListLogName 参数标识两个单独的参数集。

独特的参数

每个参数集必须具有唯一的参数,PowerShell 运行时使用该参数来公开适当的参数集。如果可能,唯一参数应该是强制参数。当参数是必需的时,用户必须指定该参数,并且 PowerShell 运行时使用该参数来标识参数集。如果您的 cmdlet 设计为在不指定任何参数的情况下运行,则唯一参数不是必需的。

多个参数集

在下图中,左列显示三个有效参数集。 参数 A 对于第一个参数集是唯一的,参数 B 对于第二个参数集是唯一的,参数 C 对于第三个参数集是唯一的放。在右列中,参数集没有唯一的参数。

[玩转系统] Cmdlet 参数集

参数设置要求

以下要求适用于所有参数集。

  • 每个参数集必须至少有一个唯一的参数。如果可能,请将此参数设置为强制参数。

  • 包含多个位置参数的参数集必须为每个参数定义唯一的位置。两个位置参数不能指定相同的位置。

  • 一组中只有一个参数可以声明值为 trueValueFromPipeline 关键字。多个参数可以定义值为 trueValueFromPipelineByPropertyName 关键字。

  • 如果某个参数没有指定参数集,则该参数属于所有参数集。

笔记

对于 cmdlet 或函数,参数集的限制为 32 个。

默认参数集

定义多个参数集时,可以使用 Cmdlet 属性的 DefaultParameterSetName 关键字指定默认参数集。如果 PowerShell 无法根据命令提供的信息确定要使用的参数集,则它会使用默认参数集。有关 Cmdlet 属性的详细信息,请参阅 Cmdlet 属性声明。

声明参数集

要创建参数集,您必须在为参数集中的每个参数声明 Parameter 属性时指定 ParameterSetName 关键字。对于属于多个参数集的参数,请为每个参数集添加一个 Parameter 属性。此属性使您能够为每个参数集定义不同的参数。例如,您可以将参数在一组中定义为强制参数,而在另一组中定义为可选参数。但是,每个参数集必须包含一个唯一的参数。有关详细信息,请参阅参数属性声明。

在以下示例中,UserName 参数是Test01 参数集的唯一参数,ComputerName 参数是Test01 参数集的唯一参数。Test02 参数设置。 SharedParam 参数属于这两个集合,对于 Test01 参数集是必需的,但对于 Test02 参数集是可选的。

[Parameter(Position = 0, Mandatory = true, ParameterSetName = "Test01")]
public string UserName
{
  get { return userName; }
  set { userName = value; }
}
private string userName;

[Parameter(Position = 0, Mandatory = true, ParameterSetName = "Test02")]
public string ComputerName
{
  get { return computerName; }
  set { computerName = value; }
}
private string computerName;

[Parameter(Mandatory= true, ParameterSetName = "Test01")]
[Parameter(ParameterSetName = "Test02")]
public string SharedParam
{
    get { return sharedParam; }
    set { sharedParam = value; }
}
private string sharedParam;

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

取消回复欢迎 发表评论:

关灯