Read-Host
Beolvassa a bemenetsort a konzolról.
Syntax
Read-Host
[[-Prompt] <Object>]
[-AsSecureString]
[<CommonParameters>]
Description
A Read-Host
parancsmag beolvassa a konzol (stdin) bemeneti sorát. Ezzel kérheti a felhasználótól a bemenetet. Mivel a bemenetet biztonságos sztringként mentheti, ezzel a parancsmaggal kérheti a felhasználóktól a biztonságos adatok, például jelszavak megadását.
Feljegyzés
Read-Host
legfeljebb 8190 karakter hosszúságú lehet, amelyet a felhasználó bemeneteként elfogadhat.
Példák
1. példa: Konzolbemenet mentése változóba
Ez a példa a következő sztringet jeleníti meg: "Adja meg a korát:" sztringet. Amikor beír egy értéket, és lenyomja az Enter billentyűt, az érték a $Age
változóban lesz tárolva.
$Age = Read-Host "Please enter your age"
2. példa: Konzolbemenet mentése biztonságos sztringként
Ez a példa az "Enter a Password:" sztringet jeleníti meg parancssorként. Az érték megadásakor csillag (*
) jelenik meg a konzolon a bemenet helyett. Az Enter billentyűt lenyomva az érték SecureString objektumként lesz tárolva a $pwd_secure_string
változóban.
$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString
3. példa: A bemenet normalizálása
Ez a példa arra kéri a felhasználót, hogy adja meg a pontosvesszővel elválasztott városok listáját. A sztring értékét a felhasználó által beírt módon jeleníti meg. A példában a felhasználó szóközöket adott hozzá néhány bejegyzés között. Ez a szkript későbbi részében hibához vezethet, ahol a kód pontos nevet vár.
A példa bemutatja, hogyan alakíthat át egy bemeneti sztringet bejegyzéstömbökké további szóközök nélkül.
$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'
A példa az operátorral -split
konvertálja a bemeneti sztringet sztringek tömbjeként. A tömb minden sztringje egy másik város nevét tartalmazza. Az osztott sztringek azonban további szóközöket tartalmaznak. A Trim()
metódus eltávolítja a kezdő és záró szóközöket az egyes sztringekből.
Paraméterek
-AsSecureString
Azt jelzi, hogy a parancsmag csillagokat (*
) jelenít meg a felhasználó által bemenetként beírt karakterek helyett. Ha ezt a paramétert használja, a Read-Host
parancsmag kimenete egy SecureString objektum (System.Security.SecureString).
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Prompt
A parancssor szövegét adja meg. Írjon be egy sztringet. Ha a sztring szóközöket tartalmaz, tegye idézőjelek közé. A PowerShell egy kettőspontot (:
) fűz a beírt szöveghez.
Típus: | Object |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
None
Ehhez a parancsmaghoz nem lehet objektumokat csövezni.
Kimenetek
Ez a parancsmag alapértelmezés szerint egy sztringet ad vissza.
Az AsSecureString paraméter használatakor ez a parancsmag egy SecureString értéket ad vissza.
Jegyzetek
Ez a parancsmag csak a gazdafolyamat stdin streaméből olvas be. A stdin stream általában a gazdakonzol billentyűzetéhez csatlakozik.