我有一个验证用户输入的功能,它可以按预期工作。正确时返回$true
,否则返回错误。
由于我想返回要在其他地方使用的结果(True和False),因此是否有可能从$false
捕获ValidateScript()
?
尝试了if / else之类的各种操作,并尝试搜索但未找到任何相关内容。
function Check-Input-ShareName {
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[ValidateScript({
if ($_ -match '(?=^[a-zA-Z].{3,30}$)(?![_-].+)(?!.+[_-]$)(?!.*[_-]{2,})[^<>[\]{}|\\\/^~%# :;_,$@%*?\0-\cZ]+$') {
$true
} else {
#Throw "$_ is invalid Share Name." this works and throws error when I uncomment
$false
}
})]
[string]$ShareName
)
Process {
if ($true) {
Write-Host 'True'
return $ShareName
}
if ($false) {
Write-Host 'True'
return 'invalid'
}
我想如果它的false返回false,那么我可以在其他地方对此采取行动。