参数属性声明

Parameter 属性将 cmdlet 类的公共属性标识为 cmdlet 参数。

语法

[Parameter()]
[Parameter(Named Parameters...)]

参数

MandatorySystem.Boolean) 可选命名参数。 True 指示需要 cmdlet 参数。 如果在调用 cmdlet 时未提供必需的参数,Windows PowerShell 会提示用户输入参数值。 默认值为 false

ParameterSetNameSystem.String) 可选命名参数。 指定此 cmdlet 参数所属的参数集。 如果未指定任何参数集,则参数属于所有参数集。

PositionSystem.Int32) 可选命名参数。 指定参数在 Windows PowerShell 命令中的位置。

ValueFromPipelineSystem.Boolean) 可选命名参数。 True 指示 cmdlet 参数从管道对象获取其值。 如果 cmdlet 访问完整的对象,而不仅仅是对象的属性,请指定此关键字。 默认值为 false

ValueFromPipelineByPropertyNameSystem.Boolean) 可选命名参数。 True 指示 cmdlet 参数从管道对象的属性中获取其值,该属性的名称或别名与此参数相同。 例如,如果 cmdlet 具有 Name 参数,并且管道对象还具有 Name 属性,则 Name 属性的值将分配给 cmdlet 的 Name 参数。 默认值为 false

ValueFromRemainingArgumentsSystem.Boolean) 可选命名参数。 True 指示 cmdlet 参数接受传递给 cmdlet 的所有剩余参数。 默认值为 false

HelpMessageSystem.String) 可选命名参数。 指定参数的简短说明。 运行 cmdlet 且未指定必需参数时,Windows PowerShell 会显示此消息。

HelpMessageBaseNameSystem.String) 可选命名参数。 指定资源标识符所在的位置。 例如,此参数可以指定要本地化的帮助消息的资源程序集。

HelpMessageResourceIdSystem.String) 可选命名参数。指定帮助消息的资源标识符。

DontShowSystem.Boolean) 可选命名参数。 True 指示参数在用户中隐藏用于选项卡扩展和 IntelliSense。 默认值为 false

言论

  • 有关如何声明此属性的详细信息,请参阅 如何声明 Cmdlet 参数

  • cmdlet 可以具有任意数量的参数。 但是,为了获得更好的用户体验,请限制参数数。

  • 必须在公共非静态字段或属性上声明参数。 应在属性上声明参数。 该属性必须具有公共集访问器,并且如果指定了 ValueFromPipelineValueFromPipelineByPropertyName 关键字,则属性必须具有公共 get 访问器。

  • 指定位置参数时,将参数中的位置参数数限制为小于 5。 而且,位置参数不必连续。 位置 5、100 和 250 与位置 0、1 和 2 相同。

  • 如果未指定 Position 关键字,则必须按其名称引用 cmdlet 参数。

  • 使用参数集时,请注意以下事项:

    • 每个参数集必须至少有一个唯一参数。 良好的 cmdlet 设计表明,如果可能,此唯一参数也应是必需的。 如果 cmdlet 设计为在没有参数的情况下运行,则不能强制使用唯一参数。

    • 没有参数集应包含多个具有相同位置的位置参数。

    • 参数集中只有一个参数应声明 ValueFromPipeline = true

    • 多个参数可以定义 ValueFromPipelineByPropertyName = true

  • 有关参数名称指南的详细信息,请参阅 Cmdlet 参数名称

  • 参数属性由 System.Management.Automation.ParameterAttribute 类定义。

  • DontShow 参数具有以下副作用:

    • 影响关联参数的所有参数集,即使存在未使用 DontShow 的参数集。
    • 隐藏选项卡完成和 IntelliSense 中的常见参数。 DontShow 不隐藏可选通用参数:WhatIf确认UseTransaction

另请参阅