我想对PowerShell中的用户输入进行一些基本验证,以确保用户只能输入整数,例如不输入-7.我不确定这是怎么做的,并且会欣赏指针.
[parameter(Mandatory=$false)][int]$number
Run Code Online (Sandbox Code Playgroud)
如果用户输入-$number此将被接受.我希望它拒绝这种类型的输入.
Joe*_*oey 14
您可以使用ValidateRange参数:
[parameter(Mandatory=$false)]
[ValidateRange(1, [int]::MaxValue)]
[int] $number
Run Code Online (Sandbox Code Playgroud)
从文档:
ValidateRange验证属性
ValidateRange属性指定每个参数或变量值的数值范围.如果任何值超出该范围,则Windows PowerShell会生成错误.在以下示例中,Attempts参数的值必须介于0和10之间.
Run Code Online (Sandbox Code Playgroud)Param ( [parameter(Mandatory=$true)] [ValidateRange(0,10)] [Int] $Attempts )在以下示例中,变量$ number的值必须介于0和10之间.
Run Code Online (Sandbox Code Playgroud)[Int32][ValidateRange(0,10)]$number = 5
从 PowerShell 6.1.0 开始,您可以使用 ValidateRangeKind 来初始化属性:
[Parameter(Mandatory = $false)]
[ValidateRange("Positive")]
[Int] $Number = 5
Run Code Online (Sandbox Code Playgroud)
ValidateRange 验证属性
ValidateRange 属性为每个参数或变量值指定一个数字范围或一个 ValidateRangeKind 枚举值。如果任何值超出该范围,PowerShell 会生成错误。
ValidateRangeKind 枚举允许使用以下值:
- 正数 - 大于零的数字。
- 负数 - 小于零的数字。
- NonPositive - 小于或等于零的数字。
- NonNegative - 大于或等于零的数字。
| 归档时间: |
|
| 查看次数: |
7969 次 |
| 最近记录: |