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

String

Secara default, cmdlet ini mengembalikan string.

SecureString

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.