如何在PowerShell函数中使用ValidateCount属性?

PowerShell函数中的validateCount属性用于验证数组的长度,这意味着您可以将特定数量的参数传递给参数。在下面的示例中,当我们传递值时,我们需要数组应包含最小1值和最大4个值。为此,我们将编写以下脚本,

Function ValidateArray {
   Param (
      [ValidateCount(1,3)]
      [String[]]$Animals
   )
   return $PSBoundParameters
}

输出结果

PS C:\> ValidateArray -Animals Cow, Dog, Cat
Key Value
--- -----
Animals {Cow, Dog, Cat}

上面的输出是有效的,但是当我们传递null或4值时,它变得无效,因为我们声明了数组的长度应该在1到3之间。

PS C:\> ValidateArray -Animals @()
ValidateArray: Cannot validate argument on parameter 'Animals'. The parameter req
uires at least 1 value(s) and no more than 3 value(s) - 0 value(s) were provided.
PS C:\> ValidateArray -Animals Cow, Dog, Cat, Tiger
ValidateArray: Cannot validate argument on parameter 'Animals'. The parameter req
uires at least 1 value(s) and no more than 3 value(s) - 4 value(s) were provided.