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函数限制数组参数个数,本文就介绍这么多,希望对您有所帮助,谢谢!

03-14 15:00