about_PSConsoleHostReadLine
Краткое описание
В этой статье описывается, как создать настройку операций чтения входных данных в командной строке PowerShell.
Подробное описание
Начиная с Windows PowerShell версии 3, можно написать функцию с именем PSConsoleHostReadLine, которая переопределяет способ обработки входных данных консоли по умолчанию.
Примеры
В следующем примере блокнот запускается и получает входные данные из текстового файла, который создает пользователь:
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 и другие входные данные. При нажатии клавиши ВВОД или ВКЛАДКа Windows PowerShell получает текст, введенный до этой точки. Нет способа знать, что вы нажимали клавиши CTRL-R, CTRL-A, CTRL-E или другие клавиши перед нажатием клавиш ВВОД или ВКЛАДКА. В Windows PowerShell версии 3 функция PSConsoleHostReadLine решает эту проблему. При определении функции с именем PSConsoleHostReadline на узле консоли Windows PowerShell Windows PowerShell вызывает эту функцию вместо механизма ввода "Режим приготовления".
См. также
PowerShell