Read-Host
Membaca baris input dari konsol.
Sintaks
Read-Host
[[-Prompt] <Object>]
[-MaskInput]
[<CommonParameters>]
Read-Host
[[-Prompt] <Object>]
[-AsSecureString]
[<CommonParameters>]
Deskripsi
Read-Host
Cmdlet membaca baris input dari konsol (stdin). Anda dapat menggunakannya untuk meminta input kepada pengguna. Karena Anda dapat menyimpan input sebagai string aman, Anda dapat menggunakan cmdlet ini untuk meminta data aman kepada pengguna, seperti kata sandi.
Catatan
Read-Host
memiliki batas 1022 karakter yang dapat diterimanya sebagai input dari pengguna.
Contoh
Contoh 1: Simpan input konsol ke variabel
Contoh ini menampilkan string "Silakan masukkan usia Anda:" sebagai perintah. Saat nilai dimasukkan dan tombol Enter ditekan, nilai disimpan dalam $Age
variabel.
$Age = Read-Host "Please enter your age"
Contoh 2: Simpan input konsol sebagai string aman
Contoh ini menampilkan string "Masukkan Kata Sandi:" sebagai perintah. Saat nilai sedang dimasukkan, tanda bintang (*
) muncul di konsol sebagai pengganti input. Saat tombol Enter ditekan, nilai disimpan sebagai objek SecureString dalam $pwd_secure_string
variabel.
$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString
Contoh 3: Input mask dan sebagai string teks biasa
Contoh ini menampilkan string "Masukkan Kata Sandi:" sebagai perintah. Saat nilai sedang dimasukkan, tanda bintang (*
) muncul di konsol sebagai pengganti input. Saat tombol Enter ditekan, nilai disimpan sebagai objek String teks biasa dalam $pwd_string
variabel.
$pwd_string = Read-Host "Enter a Password" -MaskInput
Contoh 4: Menormalkan input
Contoh ini meminta pengguna untuk memasukkan daftar kota yang dipisahkan oleh titik koma. Ini menunjukkan nilai string seperti yang ditik oleh pengguna. Dalam contoh, pengguna menambahkan spasi di antara beberapa entri. Ini dapat menyebabkan kesalahan nanti dalam skrip di mana kode mengharapkan nama yang tepat.
Contoh menunjukkan bagaimana Anda dapat mengonversi string input menjadi array entri tanpa spasi tambahan.
$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'
Contoh menggunakan -split
operator untuk mengonversi string input menjadi array string. Setiap string dalam array menyertakan nama kota yang berbeda. Namun, string terpisah mencakup spasi tambahan. Metode ini Trim()
menghapus spasi di depan dan belakang dari setiap string.
Parameter
-AsSecureString
Menunjukkan bahwa cmdlet menampilkan tanda bintang (*
) sebagai pengganti karakter yang jenis pengguna sebagai input. Saat Anda menggunakan parameter ini, output Read-Host
cmdlet adalah objek SecureString (System.Security.SecureString).
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaskInput
Menunjukkan bahwa cmdlet menampilkan tanda bintang (*
) sebagai pengganti karakter yang jenis pengguna sebagai input. Saat Anda menggunakan parameter ini, output Read-Host
cmdlet adalah objek String .
Ini memungkinkan Anda untuk dengan aman meminta kata sandi yang dikembalikan sebagai teks biasa alih-alih SecureString.
Parameter ini ditambahkan di PowerShell 7.1.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Prompt
Menentukan teks perintah. Ketik string. Jika string menyertakan spasi, sertakan dalam tanda kutip. PowerShell menambahkan titik dua (:
) ke teks yang Anda masukkan.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
Secara default, cmdlet ini mengembalikan string.
Saat Anda menggunakan parameter AsSecureString , cmdlet ini mengembalikan SecureString.
Catatan
Cmdlet ini hanya membaca dari aliran stdin dari proses host. Biasanya, aliran stdin terhubung ke keyboard konsol host.
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk