Как получить $ false в ValidateScript () - PullRequest
0 голосов
/ 17 июня 2019

У меня есть функция, которая проверяет ввод пользователя, и она работает, как ожидалось.Возвращает $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, чтобы я мог предпринять действия с этим в другом месте.

...