about_PSConsoleHostReadLine
Krótki opis
W tym artykule wyjaśniono, jak utworzyć dostosowywanie sposobu odczytywania danych wejściowych przez program PowerShell w wierszu polecenia konsoli.
Długi opis
Począwszy od programu Windows PowerShell 3.0, można napisać funkcję o nazwie PSConsoleHostReadLine, która zastępuje domyślny sposób przetwarzania danych wejściowych konsoli.
PRZYKŁADY
Poniższy przykład uruchamia Notatnik i pobiera dane wejściowe z pliku tekstowego tworzonego przez użytkownika:
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
}
UWAGI
Domyślnie program PowerShell odczytuje dane wejściowe z konsoli programu w trybie gotowanym — w którym podsystem konsoli systemu Windows obsługuje wszystkie klawiatury, menu F7 i inne dane wejściowe. Po naciśnięciu klawisza Enter lub klawisza Tab program PowerShell pobiera tekst wpisany do tego momentu. Nie ma możliwości, aby wiedzieć, że naciśnięcie klawiszy Ctrl-R, Ctrl-A, Ctrl-E lub innych klawiszy przed naciśnięciem klawisza Enter lub Tab. W programie Windows PowerShell 3.0 funkcja PSConsoleHostReadLine rozwiązuje ten problem. Podczas definiowania funkcji o nazwie PSConsoleHostReadline na hoście konsoli programu PowerShell program PowerShell wywołuje tę funkcję zamiast mechanizmu wprowadzania "Tryb gotowany".
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla