Read-Host
Načte řádek vstupu z konzoly.
Syntaxe
Read-Host
[[-Prompt] <Object>]
[-MaskInput]
[<CommonParameters>]
Read-Host
[[-Prompt] <Object>]
[-AsSecureString]
[<CommonParameters>]
Description
Rutina Read-Host
načte řádek vstupu z konzoly (stdin). Můžete ho použít k zobrazení výzvy k zadání vstupu uživatele. Protože můžete vstup uložit jako zabezpečený řetězec, můžete pomocí této rutiny vyzvat uživatele k zadání zabezpečených dat, jako jsou hesla.
Poznámka:
Read-Host
má limit 1022 znaků, který může přijmout jako vstup od uživatele.
Příklady
Příklad 1: Uložení vstupu konzoly do proměnné
Tento příklad zobrazí řetězec "Zadejte váš věk:" jako výzvu. Při zadání hodnoty a stisknutí klávesy Enter se hodnota uloží do $Age
proměnné.
$Age = Read-Host "Please enter your age"
Příklad 2: Uložení vstupu konzoly jako zabezpečeného řetězce
V tomto příkladu se zobrazí řetězec "Zadejte heslo:" jako výzvu. Při zadávání hodnoty se v konzole místo vstupu zobrazí hvězdičky (*
). Při stisknutí klávesy Enter se hodnota uloží jako objekt SecureString v $pwd_secure_string
proměnné.
$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString
Příklad 3: Maskování vstupu a jako řetězec prostého textu
V tomto příkladu se zobrazí řetězec "Zadejte heslo:" jako výzvu. Při zadávání hodnoty se v konzole místo vstupu zobrazí hvězdičky (*
). Při stisknutí klávesy Enter se hodnota uloží jako objekt String prostého $pwd_string
textu v proměnné.
$pwd_string = Read-Host "Enter a Password" -MaskInput
Příklad 4: Normalizace vstupu
Tento příklad vyzve uživatele, aby zadal seznam měst oddělených středníky. Zobrazuje hodnotu řetězce tak, jak ji uživatel zadá. V tomto příkladu uživatel přidal mezery mezi některé položky. To může vést k chybě později ve skriptu, kde kód očekává přesný název.
Příklad ukazuje, jak můžete převést vstupní řetězec na pole položek bez nadbytečných mezer.
$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'
Tento příklad používá operátor k převodu -split
vstupního řetězce na pole řetězců. Každý řetězec v poli obsahuje název jiného města. Rozdělené řetězce ale obsahují nadbytečné mezery. Metoda Trim()
odebere úvodní a koncové mezery z každého řetězce.
Parametry
-AsSecureString
Označuje, že rutina zobrazuje hvězdičky (*
) místo znaků, které uživatel zadá jako vstup. Při použití tohoto parametru je výstupem Read-Host
rutiny objekt SecureString (System.Security.SecureString).
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-MaskInput
Označuje, že rutina zobrazuje hvězdičky (*
) místo znaků, které uživatel zadá jako vstup. Při použití tohoto parametru je výstupem Read-Host
rutiny objekt String .
To vám umožní bezpečně zobrazit výzvu k zadání hesla, které se místo řetězce SecureString vrátí jako prostý text.
Tento parametr byl přidán v PowerShellu 7.1.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Prompt
Určuje text výzvy. Zadejte řetězec. Pokud řetězec obsahuje mezery, uzavřete ho do uvozovek. PowerShell připojí dvojtečku (:
) k zadanému textu.
Typ: | Object |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None
Do této rutiny nemůžete roušit objekty.
Výstupy
Ve výchozím nastavení vrátí tato rutina řetězec.
Pokud použijete parametr AsSecureString , vrátí tato rutina řetězec SecureString.
Poznámky
Tato rutina čte pouze ze streamu stdin hostitelského procesu. Stream stdin je obvykle připojený k klávesnici konzoly hostitele.