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
Varsayılan olarak, bu cmdlet bir dize döndürür.
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.
İlişkili Bağlantılar
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin