about_PSConsoleHostReadLine
Descrizione breve
Viene illustrato come creare una personalizzazione del modo in cui PowerShell legge l'input al prompt della console.
Descrizione lunga
A partire da Windows PowerShell V3, è possibile scrivere una funzione denominata PSConsoleHostReadLine che esegue l'override del modo predefinito in cui viene elaborato l'input della console.
ESEMPI
L'esempio seguente avvia Blocco note e ottiene l'input da un file di testo creato dall'utente:
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
Per impostazione predefinita, PowerShell legge l'input dalla console in quello che è noto come "Modalità cooked", in cui il sottosistema della console di Windows gestisce tutti i tasti di scelta rapida, i menu F7 e altri input. Quando si preme INVIO o TAB, Windows PowerShell ottiene il testo digitato fino a quel punto. Non c'è modo per sapere che hai premuto CTRL-R, CTRL-A, CTRL-E o qualsiasi altro tasto prima di premere INVIO o TAB. In Windows PowerShell versione 3 la funzione PSConsoleHostReadLine risolve questo problema. Quando si definisce una funzione denominata PSConsoleHostReadline nell'host della console di Windows PowerShell, Windows PowerShell chiama tale funzione anziché il meccanismo di input "Cooked Mode".
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per