Share via


Read-Host

Konsoldan bir giriş satırı okur.

Syntax

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

Description

cmdlet'i Read-Host konsoldan (stdin) bir giriş satırı okur. Bir kullanıcıdan giriş istemesi için bunu kullanabilirsiniz. Girişi güvenli bir dize olarak kaydedebildiğiniz için, bu cmdlet'i kullanarak kullanıcılardan parolalar gibi güvenli verileri isteyebilirsiniz.

Not

Read-Host kullanıcı girişi olarak kabul edebildiği 1022 karakter sınırına sahiptir.

Ö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 girildiğinde ve Enter tuşuna basıldığında, değer değişkeninde $Age depolanır.

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

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

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

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

Örnek 3: Girişi ve düz metin dizesi olarak maskele

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

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

Örnek 4: Girişi normalleştirme

Bu örnek, kullanıcıdan noktalı virgülle ayrılmış şehirlerin listesini girmenizi ister. Kullanıcı tarafından yazılan dizenin değerini gösterir. Örnekte kullanıcı bazı girdilerin arasına boşluklar eklemiş. Bu, betikte daha sonra kodun tam bir ad beklediği bir hataya neden olabilir.

Örnek, bir giriş dizesini fazladan boşluk bırakmadan bir girdi 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 -split dize dizisine dönüştürmek için işlecini kullanır. Dizideki her dize farklı bir şehrin adını içerir. Ancak, bölünmüş dizeler ek boşluklar içerir. yöntemi, Trim() her dizeden baştaki ve sondaki boşlukları kaldırır.

Parametreler

-AsSecureString

Cmdlet'in, kullanıcının giriş olarak yazdığınız karakterlerin yerine yıldız işareti (*) gösterdiğini gösterir. Bu parametreyi kullandığınızda, cmdlet'in Read-Host çıkışı bir SecureString nesnesidir (System.Security.SecureString).

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaskInput

Cmdlet'in, kullanıcının giriş olarak yazdığınız karakterlerin yerine yıldız işareti (*) gösterdiğini gösterir. Bu parametreyi kullandığınızda, cmdlet'in çıktısı Read-Host bir String nesnesidir. Bu, SecureString yerine düz metin olarak döndürülen parolayı güvenli bir şekilde istemenizi sağlar.

Bu parametre PowerShell 7.1'e eklendi.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prompt

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

Type:Object
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Girişler

None

Nesneleri bu cmdlet'e yöneltemezsiniz.

Çıkışlar

String

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 konak işleminin stdin akışından okur. Genellikle stdin akışı konak konsolunun klavyesine bağlanır.