Read-Host
Načte řádek vstupu z konzoly.
Syntax
AsString (Výchozí)
Read-Host
[[-Prompt] <Object>]
[-MaskInput]
[<CommonParameters>]
AsSecureString
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 proměnné $Age.
$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 proměnné $pwd_secure_string.
$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 (*). Když stisknete klávesu Enter, hodnota se uloží jako prostý text String objektu v proměnné $pwd_string.
$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'
Příklad používá operátor -split k převodu 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() z každého řetězce odebere úvodní a koncové mezery.
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 rutiny Read-Host objekt SecureString (System.Security.SecureString).
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
AsSecureString
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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 rutiny Read-Host objekt String.
To vám umožní bezpečně vyzvat k zadání hesla, které je vráceno jako prostý text místo SecureString.
Tento parametr byl přidán v PowerShellu 7.1.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
AsString
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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.
Vlastnosti parametru
| Typ: | Object |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 0 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
None
Do tohoto cmdletu nemůžete předávat objekty.
Výstupy
String
Ve výchozím nastavení vrátí tato rutina řetězec.
SecureString
Pokud použijete parametr AsSecureString, vrátí tato rutina SecureString .
Poznámky
Tato rutina čte pouze ze streamu stdin hostitelského procesu. Stream stdin je obvykle připojený k klávesnici konzoly hostitele.