如何在ValidateScript()中捕获$ false

时间:2019-06-17 19:34:21

标签: powershell-4.0

我有一个验证用户输入的功能,它可以按预期工作。正确时返回$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,那么我可以在其他地方对此采取行动。

0 个答案:

没有答案