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