本文介紹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函數限制數組參數個數,本文就介紹這么多,希望對您有所幫助,謝謝!