Read-Host
Leest een regel invoer van de console.
Syntaxis
AsString (Standaard)
Read-Host
[[-Prompt] <Object>]
[-MaskInput]
[<CommonParameters>]
AsSecureString
Read-Host
[[-Prompt] <Object>]
[-AsSecureString]
[<CommonParameters>]
Description
De cmdlet Read-Host leest een regel invoer uit de console (stdin). U kunt deze gebruiken om een gebruiker om invoer te vragen. Omdat u de invoer kunt opslaan als een beveiligde tekenreeks, kunt u deze cmdlet gebruiken om gebruikers te vragen om beveiligde gegevens, zoals wachtwoorden.
Opmerking
Read-Host een limiet van 1022 tekens heeft die kan worden geaccepteerd als invoer van een gebruiker.
Voorbeelden
Voorbeeld 1: Console-invoer opslaan in een variabele
In dit voorbeeld wordt de tekenreeks 'Geef uw leeftijd op:' weergegeven als een prompt. Wanneer een waarde wordt ingevoerd en de Enter-toets wordt ingedrukt, wordt de waarde opgeslagen in de $Age variabele.
$Age = Read-Host "Please enter your age"
Voorbeeld 2: Console-invoer opslaan als een beveiligde tekenreeks
In dit voorbeeld wordt de tekenreeks 'Een wachtwoord invoeren:' weergegeven als een prompt. Als een waarde wordt ingevoerd, worden sterretjes (*) weergegeven op de console in plaats van de invoer. Wanneer de Enter-toets wordt ingedrukt, wordt de waarde opgeslagen als een SecureString--object in de variabele $pwd_secure_string.
$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString
Voorbeeld 3: Invoer maskeren en als een tekenreeks zonder opmaak
In dit voorbeeld wordt de tekenreeks 'Een wachtwoord invoeren:' weergegeven als een prompt. Als een waarde wordt ingevoerd, worden sterretjes (*) weergegeven op de console in plaats van de invoer. Wanneer de Enter-toets wordt ingedrukt, wordt de waarde opgeslagen als tekst zonder opmaak tekenreeks object in de $pwd_string variabele.
$pwd_string = Read-Host "Enter a Password" -MaskInput
Voorbeeld 4: Invoer normaliseren
In dit voorbeeld wordt de gebruiker gevraagd een lijst met steden in te voeren, gescheiden door puntkomma's. De waarde van de tekenreeks wordt weergegeven zoals getypt door de gebruiker. In het voorbeeld heeft de gebruiker spaties toegevoegd tussen een aantal vermeldingen. Dit kan later in het script leiden tot een fout waarbij de code een exacte naam verwacht.
In het voorbeeld ziet u hoe u een invoertekenreeks kunt converteren naar een matrix met vermeldingen zonder extra spaties.
$prompt = @(
'List the cities you want weather information for.'
'When specifying multiple cities, separate them with a semi-colon, like:'
"'New York; Osan; Koforidua'"
) -join ' '
$cities = Read-Host $prompt
"Input cities string: `n`t'$cities'"
$splitCities = $cities -split ';'
"Split cities array:"
$splitCities | ForEach-Object -Process { "`t'$_'" }
$normalizedCities = $splitCities | ForEach-Object -Process { $_.Trim() }
"Normalized split cities array:"
$normalizedCities | ForEach-Object -Process { "`t'$_'" }
Input cities string:
' New York; Osan ;Koforidua '
Split cities array:
' New York'
' Osan '
'Koforidua '
Normalized split cities array:
'New York'
'Osan'
'Koforidua'
In het voorbeeld wordt de operator -split gebruikt om de invoertekenreeks te converteren naar een matrix met tekenreeksen. Elke tekenreeks in de matrix bevat de naam van een andere plaats. De gesplitste tekenreeksen bevatten echter extra spaties. Met de methode Trim() worden de voorloop- en volgspaties uit elke tekenreeks verwijderd.
Parameters
-AsSecureString
Geeft aan dat de cmdlet sterretjes (*) weergeeft in plaats van de tekens die de gebruiker als invoer typt. Wanneer u deze parameter gebruikt, is de uitvoer van de cmdlet Read-Host een SecureString-object (System.Security.SecureString).
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
AsSecureString
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-MaskInput
Geeft aan dat de cmdlet sterretjes (*) weergeeft in plaats van de tekens die de gebruiker als invoer typt. Wanneer u deze parameter gebruikt, is de uitvoer van de Read-Host-cmdlet een tekenreeksobject.
Hierdoor kunt u veilig vragen om een wachtwoord dat als tekst zonder opmaak wordt geretourneerd in plaats van SecureString-.
Deze parameter is toegevoegd in PowerShell 7.1.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
AsString
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Prompt
Hiermee geeft u de tekst van de prompt. Typ een tekenreeks. Als de tekenreeks spaties bevat, plaatst u deze tussen aanhalingstekens. PowerShell voegt een dubbele punt (:) toe aan de tekst die u invoert.
Parametereigenschappen
| Type: | Object |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 0 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
None
U kunt geen objecten doorsluisen naar deze cmdlet.
Uitvoerwaarden
String
Deze cmdlet retourneert standaard een tekenreeks.
SecureString
Wanneer u parameter AsSecureString gebruikt, retourneert deze cmdlet een SecureString-.
Notities
Deze cmdlet leest alleen uit de stdin-stroom van het hostproces. Meestal is de stdin-stream verbonden met het toetsenbord van de hostconsole.