about_PSConsoleHostReadLine
Deskripsi singkat
Menjelaskan cara membuat kustomisasi bagaimana PowerShell membaca input pada prompt konsol.
Deskripsi panjang
Mulai dari Windows PowerShell 3.0, Anda dapat menulis fungsi bernama PSConsoleHostReadLine yang mengambil alih cara default input konsol diproses.
CONTOH
Contoh berikut meluncurkan Notepad dan mendapatkan input dari file teks yang dibuat pengguna:
function PSConsoleHostReadLine
{
$inputFile = Join-Path $env:TEMP PSConsoleHostReadLine
Set-Content $inputFile "PS > "
# Notepad opens. Enter your command in it, save the file, and then exit.
notepad $inputFile | Out-Null
$userInput = Get-Content $inputFile
$resultingCommand = $userInput.Replace("PS >", "")
$resultingCommand
}
REMARKS
Secara default, PowerShell membaca input dari konsol dalam apa yang dikenal sebagai "Mode Dimasak" -- di mana subsistem konsol Windows menangani semua penekanan kunci, menu F7, dan input lainnya. Saat Anda menekan Enter atau Tab, PowerShell mendapatkan teks yang telah Anda ketikkan ke titik tersebut. Tidak ada cara untuk mengetahui bahwa Anda menekan Ctrl-R, Ctrl-A, Ctrl-E, atau tombol lain sebelum menekan Enter atau Tab. Di Windows PowerShell 3.0, fungsi PSConsoleHostReadLine memecahkan masalah ini. Saat Anda menentukan fungsi bernama PSConsoleHostReadline di host konsol PowerShell, PowerShell memanggil fungsi tersebut alih-alih mekanisme input "Mode Dimasak".