About Help

Choose a topic from the list on the left or search for a specific topic. Choose a topic from the list or search for a specific topic.
Cmdlets  Providers  Aliases  Modules
 

about_PSConsoleHostReadLine

Psconsolehostreadline

Microsoft.PowerShell.Core
 

SHORT DESCRIPTION

    Explains how to create a customize how Windows PowerShell reads input 
    at the console prompt. 
 

LONG DESCRIPTION

    Starting in Windows PowerShell V3, you can write a function named 
    PSConsoleHostReadLine that overrides the default way that console 
    input is processed.  
 

EXAMPLES

    The following example launches Notepad and gets input from a text 
    File that the user creates: 
         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

   By default, Windows PowerShell reads input from the console in what 
   is known as “Cooked Mode”—in which the Windows console subsystem  
   handles all the keypresses, F7 menus, and other input. When you press 
   Enter or Tab, Windows PowerShell gets the text that you have typed up 
   to that point. There is no way for it to know that you pressed Ctrl-R, 
   Ctrl-A, Ctrl-E, or any other keys before pressing Enter or Tab. In  
   Windows PowerShell version 3, the PSConsoleHostReadLine function solves 
   this issue. When you define a function named PSConsoleHostReadline in 
   the Windows PowerShell console host, Windows PowerShell calls that 
   function instead of the “Cooked Mode” input mechanism.   
 

SEE ALSO

about_Prompts