Bagikan melalui


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".

Lihat Juga