千家信息网

Powershell 函数中的CmdletBinding()是怎么回事?

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,参考文章:Don Jones https://technet.microsoft.com/en-us/library/ff677563.aspxpowershell 帮助文档:help about_f
千家信息网最后更新 2026年10月31日Powershell 函数中的CmdletBinding()是怎么回事?

参考文章:

Don Jones https://technet.microsoft.com/en-us/library/ff677563.aspx

powershell 帮助文档:

help about_functions_advanced_parameters

help about_common_parameters


把这三部分内容都看完了,应该也大概了解函数中的CmdletBinding()是做什么用的了,官方的文档都是英文的,看起来一般会头大。以下就是我用通俗的语言来做的描述,更简单易懂一些。


这个功能的引入是从Powershell Version 2开始的,叫做函数的高级功能,在函数的声明出启用以后,可以调用我们所说的通用参数:

  • -Verbose

  • -Debug

  • -ErrorAction

  • -WarningAction

  • -ErrorVariable

  • -WarningVariable

  • -OutVariable

  • -OutBuffer

  • -PipeLineVariable

通过放在函数开始部分可以很简单的启用访问这些通用参数。如下所示:

[CmdletBinding()]

param()


启用这个高级属性以后,就可以很容易的通过像使用命令行一样,给函数添加一些命令行的特色,调用命令很的通用参数。以下是一个最简单的例子,打开一个ISE,把以下的内容复制下去:


function Go-Advanced {

[cmdletbinding()]param()

}


param() 这个关键字还是必须要有的,即使你没有在函数中定义任何参数;


尝试运行一下这个函数,然后再打一下中横线,怎么样,就看到能够调用的这些通用参数了吧。


以下举几个例子来调用这些通用参数,先来说说Verbose的用法。

还是在ISE中输入以下代码


Function Go-Verbose {

[CmdletBinding()]Param()

Write-Verbose "Alright, you prefer talkative functions. First of all, I appreciate your wish to learn more about the common parameter -Verbose. Secondly, blah blah.."

Write-Host "This is self-explanatory, anyway."

}

再执行以下,看看是不是以下结果,通过这个例子,你就明白verbose是怎么出来的,这个单词是很难翻译的,只能是通过例子弄明白是什么意思。


再举一个例子,就是调用ShouldContinue这个方法,这个在写程序时还是很重要的,比如你想做一些破坏性的操作,程序写的健壮是一定要跳一个框出来,问一下再去执行,那种SilientContinue做法不推荐。

以下还是代码:


这段代码还是要在函数执行时加一个 -confirm参数的。如果想不加这个参数也要跳出这个框来,这样就需要一个额外的操作。把环境变量$ConfirmPreferece 设置成低。看以下代码和执行效果。



Function Remove-ByForce {

[CmdletBinding(SupportsShouldProcess)]

Param([String]$File)

$ConfirmPreference = "Low"

If ($PSCmdlet.ShouldContinue("Are you sure that you know what you are doing?","Delete with -Force parameter!")) {

Remove-Item $File -Force

} Else {

"Mission aborted!"

}

}

Remove-ByForce test




以上就是两个基本的例子,接下来的文章会讨论

param()中的[parameter()]对变量的影响。





函数 参数 例子 还是 代码 命令 就是 高级 内容 功能 变量 文档 文章 程序 部分 健壮 通俗 重要 接下来 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 互联网科技产业 互联网科技工作委员会主任 互联网科技媒体 未来的互联网科技 苏州互联网科技贷款公司 农村开互联网科技讲堂 天速互联网络科技有限公司 中国科技互联网公司收入 南山科技园互联网公司有哪些 世界互联网科技公司市值排名 荆州市昕露互联网络科技有限公司 互联网科技商业 崇明区互联网教育科技售后服务 银川新华互联网科技学校联系电话 中国互联网公司排名锤子科技 科技互联网的核心竞争力 元气玛特互联网科技公司是外包吗 陕西云淼互联网科技公司 工业互联网科技创业 今日互联网科技 金融科技创新监管互联网金融 互联网科技博客 哈尔滨新华互联网科技 互联网科技创新企业排名 知域互联网科技有限公司大骗子 广州市恰铎互联网科技有限公司 区块链结合互联网科技 绵阳真晨互联网科技有限公司 陕西彩京云互联网科技有限公司
0