Read-Host (Microsoft.PowerShell.Utility)


Read-Host

Modül:
Microsoft.PowerShell.Utility

Konsoldan bir giriş satırını okur.

Sözdizimi

Read-Host
    [[-Prompt] <Object>]
    [-MaskInput]
    [<CommonParameters>]
Read-Host
    [[-Prompt] <Object>]
    [-AsSecureString]
    [<CommonParameters>]

Tanım

Read-Host cmdlet'i konsoldan (stdin) bir giriş satırını okur. Kullanıcıdan giriş yapmasını istemek için bunu kullanabilirsiniz. Girişi güvenli bir dize olarak kaydedebildiğiniz için, bu cmdlet'i kullanıcılardan parolalar gibi güvenli veriler istemek için kullanabilirsiniz.

Not

Read-Host'un kullanıcı girişi olarak kabul edebileceği 1022 karakter sınırı vardır.

Örnekler

Örnek 1: Konsol girişini bir değişkene kaydetme

Bu örnekte istem olarak "Lütfen yaşınızı girin:" dizesi görüntülenir. Bir değer girilip Enter tuşuna basıldığında değer $Age değişkeninde saklanır.

$Age = Read-Host "Please enter your age"

Örnek 2: Konsol girişini güvenli dize olarak kaydetme

Bu örnekte "Parola Girin:" dizesi bir bilgi istemi olarak görüntülenir. Bir değer girilirken konsolda giriş yerine yıldız işaretleri (*) görünür. Enter tuşuna basıldığında değer, $pwd_secure_string değişkeninde bir SecureString nesnesi olarak depolanır.

$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString

Örnek 3: Maske girişi ve düz metin dizesi olarak

Bu örnekte "Parola Girin:" dizesi bir bilgi istemi olarak görüntülenir. Bir değer girilirken konsolda giriş yerine yıldız işaretleri (*) görünür. Enter tuşuna basıldığında değer, $pwd_string değişkeninde düz metin String nesnesi olarak depolanır.

$pwd_string = Read-Host "Enter a Password" -MaskInput

Örnek 4: Girişi normalleştirme

Bu örnekte kullanıcıdan noktalı virgülle ayrılmış şehirlerin listesini girmesi istenir. Kullanıcı tarafından yazılan dizenin değerini gösterir. Örnekte kullanıcı bazı girişlerin arasına boşluk ekledi. Bu, kodun daha sonra kodun tam bir ad beklediği bir hataya yol açabilir.

Örnek, bir giriş dizesini fazladan boşluk olmadan bir giriş dizisine nasıl dönüştürebileceğinizi gösterir.

$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'

Örnek, giriş dizesini bir dize dizisine dönüştürmek için -split operatörünü kullanır. Dizideki her dize farklı bir şehrin adını içerir. Ancak bölünmüş dizeler fazladan boşluk içerir. Trim() yöntemi, her dizenin başındaki ve sonundaki boşlukları kaldırır.

Parametreler

-AsSecureString

Cmdlet'in, kullanıcının giriş olarak yazdığı karakterlerin yerine yıldız işaretlerini (*) görüntülediğini belirtir. Bu parametreyi kullandığınızda, Read-Host cmdlet'inin çıktısı bir SecureString nesnesidir (System.Security.SecureString).

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-MaskInput

Cmdlet'in, kullanıcının giriş olarak yazdığı karakterlerin yerine yıldız işaretlerini (*) görüntülediğini belirtir. Bu parametreyi kullandığınızda Read-Host cmdlet'inin çıktısı bir String nesnesidir. Bu, SecureString yerine düz metin olarak döndürülen bir şifreyi güvenli bir şekilde istemenize olanak tanır.

Bu parametre PowerShell 7.1'e eklenmiştir.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Prompt

Bilgi isteminin metnini belirtir. Bir dize yazın. Dize boşluk içeriyorsa onu tırnak işaretleri içine alın. PowerShell, girdiğiniz metne iki nokta üst üste (:) ekler.

Tip :

Nesne

Konum:

0

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

Girişler

Yok

Nesneleri bu cmdlet'e aktaramazsınız.

Çıkışlar

Dize

Varsayılan olarak bu cmdlet bir dize döndürür.

SecureString

AsSecureString parametresini kullandığınızda, bu cmdlet bir SecureString döndürür.

Notlar

Bu cmdlet yalnızca ana bilgisayar işleminin stdin akışından okur. Genellikle stdin akışı ana konsolun klavyesine bağlanır.

İlgili makaleler