【发布时间】:2013-01-18 05:26:08
【问题描述】:
根据get-help about_Functions_CmdletBindingAttribute
CmdletBinding 属性是函数的一个属性,使它们像编译的 cmdlet 一样运行
我们可以在脚本顶部使用它。这种情况下的功能是什么? PowerShell 引擎为其所有输入调用的内部隐式“main”函数?
关于这个语法:
[CmdletBinding(ConfirmImpact=<String>,
DefaultParameterSetName=<String>,
HelpURI=<URI>,
SupportsPaging=<Boolean>,
SupportsShouldProcess=<Boolean>,
PositionalBinding=<Boolean>)]
我们在做什么?实例化cmdlbinding 对象并将参数列表传递给它的构造函数?此语法可在 param() 中找到 - 例如:[Parameter(ValueFromPipeline=$true)]。此语法是否有特定名称,是否可以在其他地方找到?
最后,作为简单的 PowerShellers,我们是否能够模仿此功能并通过设置属性来修改脚本的行为?
【问题讨论】:
-
我猜这里的文档有点误导:所有这些都与任何类型的脚本块有关:正如 Shay 所提到的 - 以函数名、路径(脚本)命名,但 也未命名,例如
& { [CmdletBinding()]param() Write-Verbose 'Foo'} -Verbose像冠军一样工作。 -
@BartekB 感谢您提出问题的第一部分。
标签: powershell binding