2016-04-12 8 views
0

İşte benim kodum. Gerçekten kirli hissediyor ve soracağım uzun bir Doğru Evsahibi Sorular listesi var.Bir PowerShell Komut Dosyasını Durdurmanın veya Sağ-Host'a yeniden sormanın en iyi yolu

Boş, Boş veya başka bir şekilde boş (yalnızca boşluk ekleme dahil) girdisi eklendiğinde komut dosyasını durdurmak istiyorum. Şu anda durdurmak için var, ama gruba temizleyici bir yolu var umuyordum yukarıda belirtilen kayıtların herhangi gerçekleşmesi halinde tablo ve belki etmek ... soruyu yeniden sormak "" Eğer

$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

Doğrudan PowerShell'e yerleşik olarak yapılandırılmış parametre doğrulama özelliklerini kullanmanız daha iyi olur. –

+0

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

+0

Bing aramanız yardımcı olmadı. İnternette bir şeyleri nasıl arayacağımı biliyorum, ama bulduklarım PowerShell için çok yeni olduğum için kafa karıştırıcıydı. Bu yüzden buradaki soruyu sordum. –

cevap

0

böyle bir araya doğrulama koşullarını koyabilirsiniz:

$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" 
    } 

Sen zorunlu olmayan boş parametresi olan bir işlev (tasarı uzun vadede çok/daha iyi daha kolay söylediği gibi) ya kadar bir süre döngü yapmak yapabilir ya giriş doğru.

+0

Bu mantıklı, ancak Exit komutunu kullanmak ve kullanıcıya yeniden başlamak yerine soruya dönmenin en iyi yolu nedir? –

+1

Henüz en iyi yol yok, çoğunlukla senaryonun nereye gittiğine bağlı (belki bir döngü değil, sadece zorunlu parametre). Ancak yerçekimi söz konusu olduğunda, Jacqueline'in bağlantısının sonuçlarıyla okumayı şiddetle tavsiye ediyorum. Şimdi böyle yapmak mantıklı gelebilir, ancak powershell parametrelerinin geçerliliğini ele alacağınız zaman, başka bir şekilde yapmayı düşünmekten nefret edersiniz. – 2o1o0

İlgili konular