参数属性声明
Parameter 属性将 cmdlet 类的公共属性标识为 cmdlet 参数。
语法
[Parameter()]
[Parameter(Named Parameters...)]
参数
Mandatory
(System.Boolean) 可选命名参数。
True
指示需要 cmdlet 参数。 如果在调用 cmdlet 时未提供必需的参数,Windows PowerShell 会提示用户输入参数值。 默认值为 false
。
ParameterSetName
(System.String) 可选命名参数。 指定此 cmdlet 参数所属的参数集。 如果未指定任何参数集,则参数属于所有参数集。
Position
(System.Int32) 可选命名参数。 指定参数在 Windows PowerShell 命令中的位置。
ValueFromPipeline
(System.Boolean) 可选命名参数。
True
指示 cmdlet 参数从管道对象获取其值。 如果 cmdlet 访问完整的对象,而不仅仅是对象的属性,请指定此关键字。 默认值为 false
。
ValueFromPipelineByPropertyName
(System.Boolean) 可选命名参数。
True
指示 cmdlet 参数从管道对象的属性中获取其值,该属性的名称或别名与此参数相同。 例如,如果 cmdlet 具有 Name
参数,并且管道对象还具有 Name
属性,则 Name
属性的值将分配给 cmdlet 的 Name
参数。 默认值为 false
。
ValueFromRemainingArguments
(System.Boolean) 可选命名参数。
True
指示 cmdlet 参数接受传递给 cmdlet 的所有剩余参数。 默认值为 false
。
HelpMessage
(System.String) 可选命名参数。 指定参数的简短说明。 运行 cmdlet 且未指定必需参数时,Windows PowerShell 会显示此消息。
HelpMessageBaseName
(System.String) 可选命名参数。 指定资源标识符所在的位置。 例如,此参数可以指定要本地化的帮助消息的资源程序集。
HelpMessageResourceId
(System.String) 可选命名参数。指定帮助消息的资源标识符。
DontShow
(System.Boolean) 可选命名参数。
True
指示参数在用户中隐藏用于选项卡扩展和 IntelliSense。 默认值为 false
。
言论
有关如何声明此属性的详细信息,请参阅 如何声明 Cmdlet 参数。
cmdlet 可以具有任意数量的参数。 但是,为了获得更好的用户体验,请限制参数数。
必须在公共非静态字段或属性上声明参数。 应在属性上声明参数。 该属性必须具有公共集访问器,并且如果指定了
ValueFromPipeline
或ValueFromPipelineByPropertyName
关键字,则属性必须具有公共 get 访问器。指定位置参数时,将参数中的位置参数数限制为小于 5。 而且,位置参数不必连续。 位置 5、100 和 250 与位置 0、1 和 2 相同。
如果未指定
Position
关键字,则必须按其名称引用 cmdlet 参数。使用参数集时,请注意以下事项:
每个参数集必须至少有一个唯一参数。 良好的 cmdlet 设计表明,如果可能,此唯一参数也应是必需的。 如果 cmdlet 设计为在没有参数的情况下运行,则不能强制使用唯一参数。
没有参数集应包含多个具有相同位置的位置参数。
参数集中只有一个参数应声明
ValueFromPipeline = true
。多个参数可以定义
ValueFromPipelineByPropertyName = true
。
有关参数名称指南的详细信息,请参阅 Cmdlet 参数名称。
DontShow
参数具有以下副作用:- 影响关联参数的所有参数集,即使存在未使用
DontShow
的参数集。 - 隐藏选项卡完成和 IntelliSense 中的常见参数。
DontShow
不隐藏可选通用参数:WhatIf、确认或 UseTransaction。
- 影响关联参数的所有参数集,即使存在未使用