• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >PowerShell > PowerShell函数实现类似重载功能实例

PowerShell函数实现类似重载功能实例

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了powershell 函数,powershell 编程实例,powershell,windows powershell,powershell是什么等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文介绍PowerShell自定义函数是否支持重载,如果支持,如何重载?如果不支持,如何实现与重载相似的效果?

郑重声明:PowerShell自定义函数不支持重载!也就是说,你不能定义两个同名的PowerShell函数,不管参数个数、顺序、类型是否相同。既然PowerShell自定义函数不支持重载功能,那么有没有什么办法来实现与重载相似的效果呢?有,当然有,那就是参数集(Parameters Set)

PowerShell自定义函数的参数集是可以为一个函数定义一个参数集,在调用函数时可以从参数集中选择一个参数进行使用。注意,只能从参数集中选择一个来使用。先看看这个示例,对参数集好有一个感性的认识。
function Add-User
{
    [CmdletBinding(DefaultParameterSetName='A')]
    param
    (
        [Parameter(ParameterSetName='A',Mandatory=$true)]
        $Name,
        [Parameter(ParameterSetName='B',Mandatory=$true)]
        $SAMAccountName,
        [Parameter(ParameterSetName='C',Mandatory=$true)]
        $DN
    )
    $chosen = $PSCmdlet.ParameterSetName
    “You have chosen $chosen parameter set.”
}
</div>
上面Add-User函数定义了一个参数集,参数集中有三个参数:Name、SAMAccountName、DN,可以选择其中任何一个使用。但Add-User函数只能传一个参数。
You have chosen A parameter set.
PS> Add-User -SAMAccountName test
You have chosen B parameter set.
PS> Add-User -DN test
You have chosen C parameter set.
PS> Add-User -DN test -Name test
Add-User : Parameter set cannot be resolved using the specified named parameters.
</div>
洪哥再举个例子,我们要做一个函数,想通过新闻ID或新闻标题来输出新闻的内容。那么应该怎么实现呢?
function Get-NewsContent
{
    [CmdletBinding(DefaultParameterSetName='A')]
    [Parameter(ParameterSetName='A',Mandatory=$true)]
    $NewsID,
    [Parameter(ParameterSetName='B',Mandatory=$true)]
    $NewsTitle
   
    $chosen = $PSCmdlet.ParameterSetName
    If($chosen -eq "A"){
        "News Content by NewsID"
    }else{
        "News Content by NewsTitle"
    }
}
</div>
关于PowerShell函数支持重载吗,本文就介绍这么多,希望对您有所帮助,谢谢!

</div>

您可能想查找下面的文章:

  • PowerShell中的函数重载示例
  • PowerShell实现统计函数嵌套深度
  • PowerShell小技巧之从函数中返回多个值
  • PowerShell函数简明教程
  • PowerShell中prompt函数的妙用
  • PowerShell中对函数参数的命名建议
  • PowerShell定义函数参数的2种方法和传参方法实例
  • PowerShell函数参数指定数据类型实例
  • PowerShell中给函数参数设置帮助信息的例子
  • PowerShell函数中使用必选参数实例

相关文章

  • Powershell在一个会话中只允许执行指定命令的方法
  • PowerShell小技巧之定时抓取屏幕图像
  • PowerShell远程安装MSI安装包、EXE可执行程序的方法
  • Powershell创建数组正确、更快的方法
  • Powershell中创建自定义对象例子
  • PowerShell批量修改AD用户密码属性的代码
  • PowerShell小技巧之配置机器的静态IP
  • PowerShell中使用正则表达式跨行匹配字符串的方法
  • 使用HTTP api简单的远程执行PowerShell脚本
  • Powershell小技巧之使用Copy-Item添加程序到开机启动

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • PowerShell小技巧之查找获取注册表路径
    • Powershell实现从注册表获取本地关联文件的扩展名
    • PowerShell中的TimeSpan时间差对象使用实例
    • PowerShell脚本实现检测网络内主机类型
    • Powershell小技巧--将文件夹中的大文件分成若干份
    • PowerShell中的加法运算详解
    • PowerShell使用Clear-Content命令删除、清空文件内容的例子
    • Windows Powershell 环境变量
    • 探索PowerShell(十五) 引号与转义字符
    • Powershell小技巧之设置IE代理

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有