Похоже, вы пытаетесь создать каталоги, если ваш пользователь выбирает одну из 3 текстовых фраз, а каталог еще не существует, и жаловаться вашему пользователю, если они выбирают что-то, кроме 3 текстовых фраз. Я бы рассматривал каждый из этих случаев отдельно:
$text = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $title,"")
$AcceptableText = @("Specific Text1","Specific Text2","Specific Text3")
If ($text -in $AcceptableText)
{
If (!(Test-Path $Path\$text))
{
new-item -ItemType directory -path $Path\$text
}
}
Else
{
write-host "invalid input"
}
Или вы могли бы сначала проверить существование каталога следующим образом:
$text = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $title,"")
$AcceptableText = @("Specific Text1","Specific Text2","Specific Text3")
If (!(Test-Path $Path\$text))
{
If (($text -in $AcceptableText))
{
new-item -ItemType directory -path $Path\$text
}
Else
{
write-host "invalid input"
}
}
РЕДАКТИРОВАТЬ: или, если вы хотите быть хитрый и избежать Test-Path (как предложено @tommymaynard), вы можете использовать следующий код (и даже исключить обертки Try | Catch, если вы не хотите проверять ошибки)
$text = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $title,"")
$AcceptableText = @("Specific Text1","Specific Text2","Specific Text3")
If (($text -in $AcceptableText))
{
try { mkdir -path $Path\$text -ErrorAction Stop } #Change to -ErrorAction Ignore if you remove Try|Catch
catch [System.IO.IOException] { } #Do nothing if directory exists
catch { Write-Error $_ }
}
Else
{
write-host "invalid input"
}
EDIT: Также стоит отметить, что существует множество способов Использовать PowerShell для создания папок
Несколько хороших, чистых примеров. Надеюсь, это поможет.