2016-04-12 11 views
0

Hier ist mein Code. Es fühlt sich wirklich dreckig an und ich habe eine lange Liste von Rechten-Host-Fragen, die ich stellen werde.Die beste Methode, um ein PowerShell-Skript zu stoppen oder den Right-Host erneut zu fragen

Ich möchte das Skript stoppen, wenn ein Null, leer oder sonst leer (einschließlich nur ein Leerzeichen hinzufügen) Eintrag hinzugefügt wird. Im Moment habe ich habe es zu stoppen, aber hatte gehofft, dass es eine saubere Art und Weise zu einer Gruppe war die „If“ Aussagen und vielleicht wieder die Frage stellen, ob einer der oben genannten Einträge passieren ...

$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

Es wäre viel besser, wenn Sie die in PowerShell integrierten Parametervalidierungsfunktionen verwenden. –

+0

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

+0

Ihre Bing-Suche war nicht hilfreich. Ich weiß, wie man im Internet nach etwas sucht, aber was ich fand, war verwirrend, da ich POWERShell SEHR neu bin. Deshalb habe ich die Frage hier gestellt. –

Antwort

0

Sie können Validierungsbedingungen zusammen so sagen:

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

können Sie entweder machen, dass eine Funktion mit einem obligatorischen nicht null Parameter (als bill sagte viel besser/leichter auf lange Sicht) oder eine while-Schleife machen, bis die Eingabe ist richtig.

+0

Das ist sinnvoll, aber was ist der beste Weg, um zu der Frage zurückzukehren, anstatt den Befehl Beenden zu verwenden und den Benutzer von vorne beginnen zu lassen? –

+1

Es gibt noch keinen besten Weg, es hängt hauptsächlich davon ab, wohin Sie mit Ihrem Skript gehen (vielleicht keine Schleife, sondern nur ein obligatorischer Parameter). Aber da die Schwerkraft erwähnt wird, empfehle ich dringend, die Ergebnisse von Jacquelines Link durchzulesen. Es kann sich so anfühlen, als wäre es sinnvoll, dies jetzt zu tun, aber sobald Sie mit der Validierung der Powershell-Parameter fertig sind, werden Sie es hassen, wenn Sie es auch anders machen. – 2o1o0

Verwandte Themen