[玩转系统] 关于函数 CmdletBindingAttribute
作者:精品下载站 日期:2024-12-14 02:22:35 浏览:13 分类:玩电脑
关于函数 CmdletBindingAttribute
简短描述
描述使函数像编译的 cmdlet 一样工作的属性。
详细描述
CmdletBinding
属性是函数的一个属性,使函数像用 C# 编写的已编译 cmdlet 一样运行。它提供对 cmdlet 功能的访问。
当您使用 CmdletBinding
属性时,PowerShell 会自动添加通用参数。您不能创建任何与公共参数使用相同名称的参数。有关更多信息,请参阅 about_CommonParameters。
PowerShell 绑定具有 CmdletBinding
属性的函数的参数,其方式与绑定已编译 cmdlet 的参数相同。 $PSCmdlet
自动变量可用于具有 CmdletBinding
属性的函数,但 $Args
变量不可用。
在具有 CmdletBinding
属性的函数中,未知参数和没有匹配位置参数的位置参数会导致参数绑定失败。
笔记
已编译的 cmdlet 使用必需的 Cmdlet
属性,该属性类似于本主题中描述的 CmdletBinding
属性。
句法
以下示例显示指定 CmdletBinding
属性的所有可选参数的函数格式。此示例后面是每个参数的简要说明。
{
[CmdletBinding(ConfirmImpact=<String>,
DefaultParameterSetName=<String>,
HelpURI=<URI>,
SupportsPaging=<Boolean>,
SupportsShouldProcess=<Boolean>,
PositionalBinding=<Boolean>)]
Param ($Parameter1)
Begin{}
Process{}
End{}
}
当从 CmdletBinding 属性中省略时,CmdletBinding 属性的布尔参数类型默认为 False。将参数值设置为 $true
或仅按名称列出参数。例如,以下 CmdletBinding 属性是等效的。
{
[CmdletBinding(SupportsPaging=$true)]
Param ($Parameter1)
Begin{}
Process{}
End{}
}
# Boolean arguments can be defined using this shorthand syntax
{
[CmdletBinding(SupportsPaging)]
Param ($Parameter1)
Begin{}
Process{}
End{}
}
ConfirmImpact
ConfirmImpact 参数指定何时应通过调用 ShouldProcess 方法来确认函数的操作。仅当 ConfirmImpact 参数等于或大于 $ConfirmPreference
首选项变量的值时,对 ShouldProcess 方法的调用才会显示确认提示。 (该参数的默认值为 Medium。)仅当还指定了 SupportsShouldProcess 参数时才指定此参数。
有关确认请求的更多信息,请参阅请求确认。
默认参数集名称
DefaultParameterSetName 参数指定 PowerShell 在无法确定要使用哪个参数集时将尝试使用的参数集的名称。您可以通过将每个参数的唯一参数设置为强制参数来避免此问题。
帮助URI
HelpURI 参数指定描述该功能的帮助主题的在线版本的 Internet 地址。 HelpURI 参数的值必须以“http”或“https”开头。
HelpURI 参数值用于 Get-Command
返回的 CommandInfo 对象的 HelpURI 属性值为函数。
但是,当计算机上安装了帮助文件并且帮助文件的 RelatedLinks 部分中的第一个链接的值是 URI 或第一个 .Link
的值时基于注释的帮助中的 > 指令是一个 URI,帮助文件中的 URI 用作函数的 HelpUri 属性的值。
当 Online 参数为
在命令中指定。Get-Help
cmdlet 时,Get-Help
cmdlet 使用 HelpURI 属性的值来查找函数帮助主题的在线版本>Get-Help
SupportsPaging
SupportsPaging 参数将 First、Skip 和 IncludeTotalCount 参数添加到函数中。这些参数允许用户从非常大的结果集中选择输出。此参数专为从支持数据选择的大型数据存储(例如 SQL 数据库)返回数据的 cmdlet 和函数而设计。
此参数是在 Windows PowerShell 3.0 中引入的。
- First:仅获取前“n”个对象。
- 跳过:忽略前“n”个对象,然后获取剩余的对象。
- IncludeTotalCount:报告数据集中的对象数量(整数),后跟对象。如果 cmdlet 无法确定总计数,它将返回“未知总计数”。
PowerShell 包含 NewTotalCount,这是一种获取要返回的总计数值并包含总计数值准确性估计的辅助方法。
以下示例函数展示了如何向高级函数添加对分页参数的支持。
function Get-Numbers {
[CmdletBinding(SupportsPaging)]
param()
$FirstNumber = [Math]::Min($PSCmdlet.PagingParameters.Skip, 100)
$LastNumber = [Math]::Min($PSCmdlet.PagingParameters.First +
$FirstNumber - 1, 100)
if ($PSCmdlet.PagingParameters.IncludeTotalCount) {
$TotalCountAccuracy = 1.0
$TotalCount = $PSCmdlet.PagingParameters.NewTotalCount(100,
$TotalCountAccuracy)
Write-Output $TotalCount
}
$FirstNumber .. $LastNumber | Write-Output
}
支持应处理
SupportsShouldProcess 参数向函数添加 Confirm 和 WhatIf 参数。 Confirm 参数会在对管道中的每个对象运行命令之前提示用户。 WhatIf 参数列出该命令将进行的更改,而不是运行该命令。
PositionalBinding
PositionalBinding 参数确定函数中的参数默认情况下是否是位置参数。默认值为$True
。您可以使用值为 $False
的 PositionalBinding 参数来禁用位置绑定。
PositionalBinding 参数是在 Windows PowerShell 3.0 中引入的。
当参数是位置参数时,参数名称是可选的。 PowerShell 根据函数命令中未命名参数值的顺序或位置将未命名参数值与函数参数相关联。
当参数不是位置参数(它们是“命名”)时,命令中需要参数名称(或名称的缩写或别名)。
当 PositionalBinding 为 $True
时,函数参数默认为位置参数。 PowerShell 按照参数在函数中声明的顺序为参数分配位置编号。
当 PositionalBinding 为 $False
时,默认情况下函数参数不是位置参数。除非在参数上声明了 Parameter 属性的 Position 参数,否则在函数中使用参数时必须包含参数名称(或别名或缩写)。
Parameter 属性的 Position 参数优先于 PositionalBinding 默认值。您可以使用Position参数来指定参数的位置值。有关 Position 参数的更多信息,请参阅 about_Functions_Advanced_Parameters。
笔记
高级函数不支持 SupportsTransactions 参数。
关键词
about_Functions_CmdletBinding_Attribute
参见
- about_函数
- about_功能_高级
- about_Functions_Advanced_Methods
- about_Functions_Advanced_Parameters
- about_Functions_OutputTypeAttribute
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag