Aracılığıyla paylaş


Read-Host

Konsoldan bir giriş satırı okur.

Sözdizimi

AsString EnterprisePublishing

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

AsSecureString

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

Description

Read-Host cmdlet'i 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.

Uyarı

Read-Host bir kullanıcıdan giriş olarak kabul edebildiği 1022 karakterlik bir sınıra 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 $Age değişkeninde 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şkeninde $pwd_secure_string 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şkeninde düz metin $pwd_string 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 dize dizisine dönüştürmek için -split işlecini kullanır. Dizideki her dize farklı bir şehrin adını içerir. Ancak, bölünmüş dizeler ek boşluklar içerir. Trim() yöntemi, 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örüntülediğini gösterir. Bu parametreyi kullandığınızda, Read-Host cmdlet'inin çıkışı bir SecureString nesnesidir ( System.Security.SecureString).

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

AsSecureString
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-MaskInput

Cmdlet'in, kullanıcının giriş olarak yazdığınız karakterlerin yerine yıldız işareti (*) görüntülediğini gösterir. Bu parametreyi kullandığınızda, Read-Host cmdlet'inin çıkışı 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.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

AsString
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:Object
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:0
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

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 SecureStringdöndürür.

Notlar

Bu cmdlet yalnızca konak işleminin stdin akışından okur. Genellikle stdin akışı konak konsolunun klavyesine bağlanır.