2016-04-12 2 views
0

Вот мой код. Он чувствует себя действительно грязным, и у меня есть длинный список вопросов с правильным хостом, о которых я буду спрашивать.Лучший способ остановить сценарий PowerShell или запросить у правого хоста

Я хочу остановить скрипт, если добавлена ​​нулевая, пустая или другая пустая (включая просто добавление пробела) запись. Сейчас я получил его остановить, но надеялся, что там было чище способ группы «Если» заявление и, возможно, повторно задать вопрос, если какие-либо из вышеупомянутых записей бывает ...

$Parent = Read-Host -prompt "Enter full parent path that will contain the new folder" 
if ($Parent -eq $null) 
    { 
    Write-Host "You entered a blank value: This Script is now Exiting." 
    Exit 
    } 
if ($Parent -eq "") 
    { 
    Write-Host "You entered a blank value: This Script is now Exiting." 
    Exit 
    } 
if ($Parent -eq " ") 
    { 
    Write-Host "You entered a blank value: This Script is now Exiting." 
    Exit 
    } 
else 
    { 
    Write-Host "You Entered $Parent" 
    } 

$Name = Read-Host -prompt "Enter Folder Name" 
if ($Name -eq $null) 
    { 
    Write-Host "You entered a blank value: This Script is now Exiting." 
    Exit 
    } 
if ($Name -eq "") 
    { 
    Write-Host "You entered a blank value: This Script is now Exiting." 
    Exit 
    } 
if ($Name -eq " ") 
    { 
    Write-Host "You entered a blank value: This Script is now Exiting." 
    Exit 
    } 
else 
    { 
    Write-Host "You Entered $Name" 
    } 
+3

Вам будет намного лучше использовать функции проверки параметров, встроенные прямо в PowerShell. –

+0

https://www.bing.com/search?q=notnullorempty+powershell –

+0

Ваш поиск Bing не помог. Я знаю, как искать что-то в Интернете, но то, что я находил, было путаным, так как я ОЧЕНЬ новичок в PowerShell. Вот почему я задал этот вопрос. –

ответ

0

Вы можете поставить условие проверки вместе так:

$Parent = Read-Host -prompt "Enter full parent path that will contain the new folder" 

if (($Parent -eq $null) -or ($Parent -eq "") -or ($Parent -eq " ")) 
    { 
Write-Host "You entered a blank value: This Script is now Exiting." 
    } 
else 
    { 
Write-Host "You Entered $Parent" 
    } 

Вы можете либо сделать, что функция с обязательным, не параметром нулевого (как банкнота сказала гораздо лучше/проще в долгосрочной перспективе), или не делать то время цикла до тех пор, вход правильный.

+0

Это имеет смысл, но каков наилучший способ вернуться к вопросу вместо использования команды «Выход» и начать работу с пользователем? –

+1

Пока нет лучшего способа, в основном это зависит от того, куда вы идете со своим скриптом (возможно, это не цикл, а только обязательный параметр). Но, как подчеркивается гравитация, я настоятельно рекомендую прочитать результаты ссылки Жаклин. Может показаться, что имеет смысл сделать это именно так, но как только вы обработаете параметры параметров powershell, вы будете ненавидеть даже думать об этом по-другому. – 2o1o0