gpt4 book ai didi

powershell - ValidateLength - 没有最大长度

转载 作者:行者123 更新时间:2023-12-03 09:46:37 27 4
gpt4 key购买 nike

验证字符串参数的长度时:

[Parameter(Mandatory=$false)]
[ValidateLength(6,128)]
[string]$value

是否可以不强制执行最大 长度(只有最小长度)?我试过:

[ValidateLength(6,0)]

但这会产生运行时错误。

最佳答案

无法直接使用该属性。

该属性的参数是 [int],因此可以隐式设置的最大值是 [int]::MaxValue

,但您不能直接使用该表达式,因为您需要一个文字。

因此,您可以对 [int]::MaxValue 的值进行硬编码,但 [int] 在技术上可能在不同的设备上具有不同的大小平台(话又说回来,2 GB 的字符串甚至可能无法工作,因此硬编码 2147483647 可能不是最糟糕的事情)。

我的测试脚本中有一个错字,我认为不可能直接使用 [int]::MaxValue,但事实证明那不是真的(感谢 Mathias 让我返回并再次检查):

[ValidateLength(6, [int]::MaxValue)]

我在 5.1 版本上测试过,但似乎这在 v2 中可能不起作用,而且我不确定确切的支持是何时添加的。


另一种可能性是使用脚本进行验证:

[ValidateScript( { $_.Length -ge 6 } )]

如果你想要一个更好的错误信息,总是有throw技巧:

[ValidateScript( { $_.Length -ge 6 -or $(throw [System.ArgumentException]"String must be at least 6 characters") } )]

此外,正如 Bill 和 Ansgars 所建议的,您可以使用正则表达式进行验证:

[ValidatePattern('^.{6,}$')]

关于powershell - ValidateLength - 没有最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46409194/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com