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.