Legen Sie den Standardwert mit Read-Host in PowerShell fest
-
Übersicht
Read-Host
in PowerShell -
Verschiedene Möglichkeiten, den Standardwert der Eingabeaufforderung mit
Read-Host
in PowerShell festzulegen
In diesem Artikel werden wir verschiedene Möglichkeiten verstehen, den Standardwert für den Befehl Read-Host
festzulegen.
Übersicht Read-Host
in PowerShell
Es führt ein zeilenweises Lesen der Eingabe von der Konsole durch. Eine Eingabezeile wird der Konsole entnommen und vom Cmdlet Read-Host
(stdin) gelesen.
Sie können es verwenden, um einen Benutzer in vielen Situationen um Feedback zu bitten. Mit diesem Cmdlet können Sie Benutzer nach vertraulichen Daten wie Kennwörtern fragen, da Sie die Eingabe als sichere Zeichenfolge aufbewahren können.
Read-Host
begrenzt die Anzahl von 1022
Zeichen, um genau zu sein, die es als Eingabe von einem Benutzer akzeptiert. Es folgt die Syntax von Read-Host
, um Eingaben entgegenzunehmen und in einer Variablen zu speichern.
$Name = Read-Host "Please enter your name."
Die Variable $Name
wird jedes Mal mit dem eingegebenen Wert aktualisiert, wenn ein Wert eingegeben und die Taste Enter gedrückt wird.
Verschiedene Möglichkeiten, den Standardwert der Eingabeaufforderung mit Read-Host
in PowerShell festzulegen
Erster Ansatz zum Festlegen des Standardwerts
Erstellen Sie eine Variable namens defaultPromptValue
und geben Sie ihr den String-Wert Saad
. Dieser Wert wird anstelle der Eingabe des Benutzers verwendet, wenn er sich dafür entscheidet, keine bereitzustellen.
$defaultPromptValue = 'Saad'
Definieren Sie eine neue Variable, promptOutput
, die eine Nachricht erzeugt, die den Benutzer zur Eingabe auffordert, und verwendet den Befehl Read-Host
, um diese Aktion auszuführen.
$promptOutput = Read-Host "Press space to use default value [$($defaultPromptValue)]"
Der nächste Schritt besteht darin, eine Bedingung zu implementieren, die überprüft, ob der Benutzer eine Eingabe gemacht hat. Wenn die Antwort ja ist, wird der eingegebene Wert der Variablen defaultPromptValue
zugewiesen.
Beim Schreiben der Bedingung für diese Operation haben wir zwei verschiedene Möglichkeiten.
if ($promptOutput -eq "") {} else {
$defaultPromptValue = $promptOutput
}
ODER
if (!$promptOutput -eq "") {$defaultPromptValue = $promptOutput}
Code:
$defaultPromptValue = 'Saad'
$promptOutput = Read-Host "Press space to use default value [$($defaultPromptValue)]"
if (!$promptOutput -eq "") {$defaultPromptValue = $promptOutput}
Ein weiterer Ansatz zum Festlegen des Standardwerts
Bei diesem Ansatz verlagern wir den Prozess des Empfangens von Benutzereingaben in die Bedingung, die prüft, ob der Benutzer einen Wert eingegeben hat oder nicht. So können wir besser nachvollziehen, ob der Nutzer Daten bereitgestellt hat oder nicht.
Ohne Zutun des Benutzers verwenden wir den Standardwert Saad
. Wenn der Benutzer jedoch eine Eingabe anbietet, verwenden wir den in der Variablen promptOutput
gespeicherten Wert.
Code:
$defaultPromptValue = 'Saad'
if (($promptOutput = Read-Host "Press enter to accept default value $defaultPromptValue") -eq '') {$defaultPromptValue} else {$promptOutput}
Letzter Ansatz zum Festlegen des Standardwerts
Dies ist die letzte, aber sicherlich nicht die unwichtigste Methode, um den Standardwert festzulegen. Es überprüft, ob die Eingabe vom Benutzer stammt, und wenn dies der Fall ist, weist es den Wert der Benutzereingabe direkt der Variablen mit dem Namen defaultPromptValue.
zu.
Code:
$defaultPromptValue = 'Saad'
if ($promptOutput = Read-Host "Value [$defaultPromptValue]") { $defaultPromptValue = $promptOutput }
Auf diese Weise muss die Bedingung else
nicht verwendet werden.
I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.
LinkedIn