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.