Powershell 为cmdlet定义创建其他默认参数

Powershell 为cmdlet定义创建其他默认参数,powershell,cmdlets,Powershell,Cmdlets,创建Powershell脚本或函数时,您可以添加[CmdletBinding()]属性,以获得某些默认参数供使用(例如-Verbose,-Debug等),而无需自己定义。在某些情况下,您可以向CmdletBinding添加其他参数,如SupportsShouldProcess或confirimpact,以进一步添加其他受支持的参数或更改cmdlet行为 是否可以定义自己的CmdletBindings以在模块中使用 是否可以定义自己的CmdletBindings以在模块中使用 不 无论如何,不是在

创建Powershell脚本或函数时,您可以添加
[CmdletBinding()]
属性,以获得某些默认参数供使用(例如
-Verbose
-Debug
等),而无需自己定义。在某些情况下,您可以向
CmdletBinding
添加其他参数,如
SupportsShouldProcess
confirimpact
,以进一步添加其他受支持的参数或更改cmdlet行为

是否可以定义自己的
CmdletBindings
以在模块中使用

是否可以定义自己的
CmdletBindings
以在模块中使用

不 无论如何,不是在脚本中:)


CmdletBinding
属性属性是在编译任何脚本块或函数之前由处理的,因此您必须重写语言引擎本身的部分以修改其行为。

我的理解是,这些属性是由PoSh引擎添加的。如果是这样的话,那么你很可能不能。那只是我的猜测,tho。[grin]可以指定
CmdletBindingAttribute
的源代码。它没有标记为
sealed
,因此您可以在脚本中自己对其进行扩展并使用新属性。@不可更正1您可以,但不会产生任何效果:)您是否可以使用
添加类型
定义您自己的属性并
调用表达式
按需编译?可以使用该语言中的
class
定义执行此操作。当然,您可以编译所需的所有属性,但这不会对命令运行时产生任何影响,就像
[CmdletBinding()]
所做的那样:)