作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因为在 PowerShell 中没有
[ValidateNotNullOrWhiteSpace()]
[ValidateNotNullOrEmpty()]
[ValidateScript({ -not ([String]::IsNullOrWhiteSpace($_)) })]
My-Cmdlet -ParameterName " "
最佳答案
[ValidateNotNullOrEmpty()]
有利于完全按照它所说的去做。
要回答您的第一个问题,我将使用 [ValidateScript(...)]
你概述的方法。
要记住的一件事是 [ValidateScript()]
的错误消息通常很糟糕,对最终用户没有帮助。作为一种解决方法,您可以执行以下操作:
[ValidateScript( {
![String]::IsNullOrWhiteSpace($_) -or throw 'Your string is null or contains whitespace'
} )]
throw [System.ArgumentException]'Blah blah whitespace'
-or throw
语法有效
$false -and $(sleep -min 10)
不需要 10 分钟,因为从不评估第二个 expr。
$true -or $(something)
不会评估第二个,因为如果第一个表达式为真,它将始终为真。
ValidateScript
需要一个 bool 值。如果我们关心的条件为真,它就会停在那里。如果不是,则计算第二个表达式,因为这是一个
throw
它只会失败,但在这种情况下,您可以控制失败消息(如果需要,还可以控制异常类)。
关于powershell - 我应该使用 [ValidateNotNullOrEmpty()] 然后在函数中查找空格,还是使用 [ValidateScript(...)]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29903955/
因为在 PowerShell 中没有 [ValidateNotNullOrWhiteSpace()] 参数属性,是不是更好用 [ValidateNotNullOrEmpty()] 作为参数属性,然后在
我是一名优秀的程序员,十分优秀!