powershell autocomplete tabs powershell-v2.0 user-input

Autocompletar entrada de usuario PowerShell 2.0



autocomplete tabs (2)

Para las personas que están buscando una forma de hacerlo y tienen la suerte de usar PS v3 (y mis disculpas por todos los requisitos para permanecer con V2):

La forma más fácil de lograr esto es usar la opción "ValidateSet" en sus parámetros de entrada.

function Show-Hello { param ( [ValidateSet("World", "Galaxy", "Universe")] [String]$noun ) $greetingString = "Hello, " + $noun + "!" Write-Host "`t=>`t" $greetingString "`t<=" }

ValidateSet arroja un error si un usuario intenta usar cualquier otra entrada:

Show-Hello "Solar System" Show-Hello : Cannot validate argument on parameter ''noun''. The argument ` "Solar System" does not belong to the set "World,Galaxy,Universe" specified ` by the ValidateSet attribute. Supply an argument that is in the set and ` then try the command again.

También agrega la finalización de pestañas a su función para ese parámetro. Y si es el PRIMER parámetro para su función, ni siquiera tiene que escribir "-noun" para completar la pestaña para hacer sugerencias sobre su valor.

Tengo una gran lista de datos (más de 1000 valores diferentes) y quiero que el usuario pueda seleccionar ciertos valores de la lista desde una consola de PowerShell.

¿Cuál es la forma más fácil desde dentro de la consola para permitir al usuario seleccionar valores rápidamente?

Me gustaría hacer algo como completar una pestaña o la capacidad de usar las teclas de flecha para desplazarme por los valores, pero no estoy seguro de cómo hacer cualquiera de estas cosas.

Cualquier consejo sería muy apreciado.


La finalización de la pestaña PowerShell puede extenderse a parámetros personalizados y valores de parámetros (en v3). Sin embargo, esto es una propiedad de funciones avanzadas. Puede usar ValidateSetAttribute para hacer eso.

Consulte el tema de ayuda de Technet sobre funciones avanzadas: http://technet.microsoft.com/en-us/library/hh847806.aspx

Puede reemplazar la función tabexpansion (v2) y tabexpansion2 (v3) en PowerShell para completar automáticamente los valores de los parámetros fuera de las funciones avanzadas. Puede obtener una definición básica de esto en PowerShell v3 ejecutando

Get-Content function:TabExpansion2

Aquí hay un ejemplo de mostrar la función de expansión de pestaña personalizada.

http://www.powershellmagazine.com/2012/11/29/using-custom-argument-completers-in-powershell-3-0/

Pero, si desea que el usuario pueda completar automáticamente los valores para un tipo de entrada de Read-Host , debe escribir un proxy para Read-Host para lograr eso.

Puede, opcionalmente, ver el módulo PowerTab en http://powertab.codeplex.com/