Sdílet prostřednictvím


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

String

Ve výchozím nastavení vrátí tato rutina řetězec.

SecureString

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.