Powershell 如何确保函数只接受正整数?
我想在PowerShell中对用户输入进行一些基本验证,以确保用户只能输入一个整数,而不能输入-7(例如)。我不知道这是如何做到的,希望能有一个指针Powershell 如何确保函数只接受正整数?,powershell,int,Powershell,Int,我想在PowerShell中对用户输入进行一些基本验证,以确保用户只能输入一个整数,而不能输入-7(例如)。我不知道这是如何做到的,希望能有一个指针 [parameter(Mandatory=$false)][int]$number 如果用户输入-$number,则接受此操作。我希望它拒绝这种类型的输入 您可以对参数使用ValidateRange: [parameter(Mandatory=$false)] [ValidateRange(1, [int]::MaxValue)] [int] $
[parameter(Mandatory=$false)][int]$number
如果用户输入
-$number
,则接受此操作。我希望它拒绝这种类型的输入 您可以对参数使用ValidateRange
:
[parameter(Mandatory=$false)]
[ValidateRange(1, [int]::MaxValue)]
[int] $number
从:
ValidateRange验证属性
ValidateRange属性为每个属性指定一个数值范围
参数或变量值。Windows PowerShell生成一个错误
如果任何值超出该范围。在下面的示例中,
尝试次数参数的值必须介于0和10之间
Param
(
[parameter(Mandatory=$true)]
[ValidateRange(0,10)]
[Int]
$Attempts
)
[Int32][ValidateRange(0,10)]$number = 5
在下面的示例中,变量$number的值必须为
在0到10之间
Param
(
[parameter(Mandatory=$true)]
[ValidateRange(0,10)]
[Int]
$Attempts
)
[Int32][ValidateRange(0,10)]$number = 5
由于PowerShell 6.1.0,您可以使用ValidateRangeKind初始化属性:
[Parameter(Mandatory = $false)]
[ValidateRange("Positive")]
[Int] $Number = 5
ValidateRange验证属性
ValidateRange属性为每个参数或变量值指定数值范围或ValidateRangeKind枚举值。如果任何值超出该范围,PowerShell将生成错误
ValidateRangeKind枚举允许以下值:
- 正-大于零的数字
- 负数-小于零的数字
- 非正-小于或等于零的数字
- 非负-大于或等于零的数字
根据这里显示的内容,这并不明显,但需要澄清的是,本例中使用[int]类型的ValidateRange(0,10)包含零和十个数字边界。因此,本例中给定的值为0或10应该是有效的,并且不会生成错误。