다음을 통해 공유


about_PSConsoleHostReadLine

간단한 설명

PowerShell이 콘솔 프롬프트에서 입력을 읽는 방법을 사용자 지정하는 방법을 설명합니다.

자세한 설명

Windows PowerShell 3.0부터 콘솔 입력이 처리되는 기본 방법을 재정의하는 PSConsoleHostReadLine 함수를 작성할 수 있습니다.

이 함수는 PSReadLine 모듈에 의해 확장됩니다.

예제

다음 예제에서는 메모장을 시작하고 사용자가 만든 텍스트 파일에서 입력을 가져옵니다.

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
}

의견

기본적으로 PowerShell은 Windows 콘솔 하위 시스템이 모든 키프레스, F7 메뉴 및 기타 입력을 처리하는 "조리된 모드"로 알려진 콘솔에서 입력을 읽습니다. Enter 또는 Tab누르면 PowerShell에서 해당 지점까지 입력한 텍스트를 가져옵니다. Ctrl+R, Ctrl+A, Ctrl+E를 누르거나, 다른 키를 누른 후 Enter 또는 Tab을 누른 것을 알 방법이 없습니다. Windows PowerShell 3.0의 PSConsoleHostReadLine 함수는 이 문제를 해결합니다. PowerShell 콘솔 호스트에서 PSConsoleHostReadline 함수를 정의할 때 PowerShell은 "조리된 모드" 입력 메커니즘 대신 해당 함수를 호출합니다.

참고 항목