PowerShell函数中限制数组参数个数的例子

 更新时间:2014年07月31日 09:28:28   投稿:junjie  
这篇文章主要介绍了PowerShell中限制函数的数组参数个数的例子,可以控制数组的参数个数在指定范围内,需要的朋友可以参考下

本文介绍PowerShell自定义函数时,可以使用数组来传递多个参数。数组传递参数时,参数个数本身无法限制,PowerShell函数提供了一个方法来限制数组中参数的个数。

PowerShell函数可以接受数组作为输入参数。而且不需要将数组定义好后再传给PowerShell函数,而可以直接将一个逗号分隔的字符串数组当作参数来传递,如:Add-User -UserName 'splaybow1','splaybow2','splaybow3'。这个函数的定义如下:

复制代码 代码如下:

function Add-User
{
    param
    (
    [String[]]
    $UserName
    )
    $UserName | ForEach-Object { “Adding $_” }
}

函数调用时如下:
复制代码 代码如下:
PS> Add-User -UserName 'Tobias'
Adding Tobias
PS> Add-User -UserName 'Tobias', 'Nina', 'Cofi'
Adding Tobias
Adding Nina
Adding Cofi

数组元素后面可以再跟上千儿八百个,但这样不安全,我们得要参数PowerShell函数定义时来做出一些限制。

复制代码 代码如下:

function Add-User
{
    param
    (
    [ValidateCount(1,3)]
    [String[]]
    $UserName
    )
    $UserName | ForEach-Object { “Adding $_” }
}

注意函数中使用了“[ValidateCount(1,3)]”这句,这表示可以接受的参数个数是1-3之间,即1个、2个、3个都可以。但不能超了,也不能少了。
复制代码 代码如下:

PS> Add-User -UserName 'Tobias', 'Nina'
Adding Tobias
Adding Nina
PS> Add-User -UserName 'Tobias', 'Nina', 'Cofi', 'splaybow'
Add-User : Cannot validate argument on parameter 'UserName'. The number of provided
arguments, (4), exceeds the maximum number of allowed arguments (3). Provide fewer than 3
arguments, and then try the command again.

上面第二个测试用例就提示:函数最大可接受的参数个数为3,而我们实际传了4个,所以失败了。

关于PowerShell函数限制数组参数个数,本文就介绍这么多,希望对您有所帮助,谢谢!

相关文章

  • Powershell小技巧之找出最大最小值

    Powershell小技巧之找出最大最小值

    在一个有n个元素的集合中,需要多少次比较才能确定其最小、最大元素呢?如果一个一个的比较,那么需要n-1次比较,是不是有更好的方法呢?如果,在比较中,记录遇到的最大值和最小值。将输入的元素两两比较,然后与当前的最大值、最小值进行比较。
    2014-09-09
  • PowerShell查找分区中最大文件的方法(查找文件并按大小排序)

    PowerShell查找分区中最大文件的方法(查找文件并按大小排序)

    这篇文章主要介绍了PowerShell查找分区中最大文件的方法,查找文件并按占用空间排序,并用命令参数只输出比如10条,这样就可以快速找出一个目录、一个分区下的N个最大的文件,需要的朋友可以参考下
    2014-08-08
  • PowerShell查询和删除打印任务操作代码实例

    PowerShell查询和删除打印任务操作代码实例

    这篇文章主要介绍了PowerShell查询和删除打印任务操作代码实例,本文直接给出代码实例,需要的朋友可以参考下
    2015-03-03
  • PowerShell实现时间管理小秘书

    PowerShell实现时间管理小秘书

    这篇文章主要介绍了PowerShell实现时间管理小秘书,本文是一个PowerShell的综合编程实例,实现了一个用来管理时间的功能,需要的朋友可以参考下
    2015-04-04
  • Windows Powershell调用静态方法

    Windows Powershell调用静态方法

    Powershell将信息存储在对象中,每个对象都会有一个具体的类型,简单的文本会以System.String类型存储,日期会以System.DateTime类型存储。任何.NET对象都可以通过GetType()方法返回它的类型,该类型中有一个FullName属性,可以查看类型的完整名称。
    2014-09-09
  • Windows Powershell分析和比较管道结果

    Windows Powershell分析和比较管道结果

    这篇文章主要介绍了Windows Powershell分析和比较管道结果,需要的朋友可以参考下
    2014-09-09
  • Powershell实现克隆NTFS文件系统权限

    Powershell实现克隆NTFS文件系统权限

    这篇文章主要介绍了Powershell实现克隆NTFS文件系统权限,克隆安全描述需要管理员权限,注意第一个目录的安全规则将全部覆盖第二个的目录的,需要的朋友可以参考下
    2014-12-12
  • 使用 powershell 创建虚拟机

    使用 powershell 创建虚拟机

    Azure PowerShell 模块用于从 PowerShell 命令行或脚本创建和管理 Azure 资源。 本指南详细介绍了如何使用 Azure PowerShell 模块创建虚拟机。
    2017-10-10
  • PowerShell 未经数字签名 系统将不执行该脚本

    PowerShell 未经数字签名 系统将不执行该脚本

    这篇文章主要介绍了PowerShell 未经数字签名 系统将不执行该脚本的相关资料
    2017-10-10
  • Powershell小技巧之使用WS-Man来调用PowerShell命令

    Powershell小技巧之使用WS-Man来调用PowerShell命令

    大多Windows系统的管理员应当已经意识到在Windows系统上进行脚本开发和命令行管理,PowerShell首当其冲。微软许多产品和一些第三方产品都提供了Windows PowerShell的管理接口。但是目前PowerShell只能运行在Windows系统上,如何才能在非Windows系统上管理windows系统呢
    2014-10-10

最新评论