2016-05-09 11 views
1

Ich habe derzeit ein Powershell-Skript, mit dem ich die Details für Benutzer nacheinander eingeben kann, die dann später als Variablen verwendet werden können. Derzeit ruft das Skript jede Eingabe auf und speichert diese dann als Variable, dies wird dann 10 mal wiederholt.Erfassen mehrerer Variablen

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null 
$NameOne = [Microsoft.VisualBasic.Interaction]::InputBox("Enter UserName") 
$firstname,$surname = $NameOne -split("\.") 
$NameTwo = [Microsoft.VisualBasic.Interaction]::InputBox("Enter UserName") 
$firstname,$surname = $NameTwo -split("\.") 

Gibt es eine Möglichkeit das Skript sowohl zu verkürzen erlauben Benutzername und Eingabe, sondern auch gespeichert werden, um zum nächsten Teil des Skripts weitergehen, wenn ein InputBox keine Dateneingabe hat?

Dank Tom

Antwort

1

eine while Schleife verwenden:

$Users = while(($Username = [Microsoft.VisualBasic.Interaction]::InputBox("Enter UserName")).Trim() -ne "") 
{ 
    $firstname,$surname = $Username -split '\.' 
    New-Object psobject -Property @{ 
     Firstname = $firstname 
     Surname = $surname 
     Username = $Username 
    } 
} 

Wenn die Benutzereingaben nichts oder Leerzeichen, wird die Schleife verlassen, sonst wird es ein neues „User-Objekt“ erstellen, enden in der $Users Array

+0

Brilliant, Danke. – user3786382