Expansión de ficha

Windows PowerShell

Para obtener una introducción completa a Windows PowerShell, asegúrese de ver las difusiones por Web a petición en Windows PowerShell Week (en inglés).

Expansión de ficha

Una de las grandes ventajas de usar Windows PowerShell es que el usuario puede sentarse frente al símbolo del sistema e insertar texto. Por tanto, no necesita perder tiempo con cuadros de diálogo, clics del mouse u otras tareas de la interfaz gráfica de usuario. Por otro lado, una de las grandes desventajas de Windows PowerShell es que tiene que sentarse frente al símbolo del sistema y escribir todo: no podrá aprovechar los cuadros de diálogo, los clics del mouse ni ningún otro acceso directo de la interfaz gráfica de usuario.

Es decir, si usted es la clase de persona a la que le gusta escribir los comandos en el símbolo del sistema, Windows PowerShell será como un sueño hecho realidad. Pero, ¿qué ocurre si no le gusta escribir, o si lo encuentra difícil? En ese caso, no está de suerte, ¿verdad?

Bueno, no es así del todo. Hay que reconocer que siempre será necesario escribir cierta cantidad de texto en Windows PowerShell. Sin embargo, Windows PowerShell incluye también una serie de características que pueden reducir enormemente la cantidad de texto que hay que escribir. Y una de las principales características es la expansión de ficha.

La expansión de ficha no es nada nuevo. De hecho, muchos usuarios estarán probablemente familiarizados con las características de expansión de ficha incluidas en Cmd.exe. Por ejemplo, suponga que desea cambiar la carpeta C:\Documents and Settings. Para ello, necesita escribir el comando completo, ¿cierto?

cd "c:\documents and settings"

Bien, puede hacerlo si lo desea. Como alternativa, puede, simplemente, escribir lo siguiente y presionar la tecla de TAB a continuación:

cd c:\d

Si la carpeta Documents and Settings es la única existente en la raíz de la unidad C cuyo nombre comienza con la letra D, entonces ya ha terminado: presione ENTRAR y el shell de comandos rellenará automáticamente, por usted, el resto de la ruta de acceso (y, lo mejor de todo, insertará también las dobles comillas). Pero, ¿Y si tuviera tres o cuatro carpetas cuyos nombres comiencen con la letra D? Está bien: mantenga presionada la tecla TAB y el shell del comando pasará, obedientemente, a través del conjunto completo de carpetas cuyos nombres comiencen con la letra D. Cuándo finalmente alcance la carpeta deseada, presione ENTRAR y permita al shell del comando escribir por usted.

En lo que se refiere a las rutas de archivos y carpetas, Windows PowerShell tiene exactamente la misma capacidad. ¿Desea cambiar a la carpeta C:\Documents and Settings? Todo lo que tiene que hacer es escribir los siguiente y, a continuación, presionar la tecla TAB:

cd c:\d

Si fuera necesario, mantenga presionada la tecla TAB hasta que aparezca C:\Documents and Settings. Presione ENTRAR y, como por arte de magia, se encontrará en la carpeta Documents and Settings.

Espere, no aplauda aún; tal como dice el dicho popular, todavía no ha visto nada. Suponga que desea usar el cmdlet Get-AuthenticodeSignature. Si es usted joven y está en buena forma física, no tendrá problemas para escribir el cmdlet completo. Si es millonario, podrá encargar a otra persona que realice el trabajo en lugar de usted. O, si usted es perezoso (como los chicos que se ocupan de crear scripts), puede limitarse a escribir lo siguiente y presionar la tecla TAB a continuación:

get-au

Correcto: la expansión de ficha de Windows PowerShell no solo funciona con rutas de acceso a archivos y carpetas, sino que también funciona con nombres de cmdlet. Hablando de cmdlets, ¿es ese el cmdlet Get-PSSnap-in? ¿O es Get-PSSnapin? O ni uno ni otro. ¿Podría ser Get-PowerShellSnapin? A decir verdad, no nos acordamos. Pero no importa mucho. Todo lo que hay que hacer es escribir lo siguiente y, a continuación, presionar la tecla TAB:

get-p

En apenas unos segundos, encontraremos exactamente lo que buscábamos: Get-PSSnapin.

La expansión de ficha funciona incluso con parámetros de cmdlet. Por ejemplo, el cmdlet Get-Help incluye un parámetro denominado -detailed que muestra ayuda detallada acerca de un tema (incluidos ejemplos). Y ¿qué sucede si le gusta la idea de la ayuda detallada, pero detesta tener que escribir -detailed? Entonces, no lo haga. Si desea obtener ayuda detallada acerca del cmdlet Get-ChildItem, pruebe el truco siguiente:

  1. Escriba get-h y presione TAB.

  2. Presione la barra espaciadora y, a continuación, escriba get-ch y presione TAB.

  3. Presione la barra espaciadora y, a continuación, escriba - y presione TAB. Mantenga presionada la tecla TAB hasta ver -Detailed y, a continuación, presione ENTRAR.

Bastante sofisticado, ¿no le parece?

Puesto que seguimos con el mismo tema, le ofrecemos otro acceso directo de escritura. En lo que se refiere a los parámetros de cmdlet, solo tiene que escribir la porción del nombre de parámetro necesaria para que Windows PowerShell reconozca exactamente de qué parámetro se trata. Por ejemplo, el cmdlet Get-ChildItem incluye los parámetros siguientes:

  • -codeSigningCert

  • -Debug

  • -ErrorAction

  • -ErrorVariable

  • -exclude

  • -filter

  • -force

  • -include

  • -literalPath

  • -name

  • -OutVariable

  • -path

  • -recurse

  • -Verbose

¿Necesita usar el parámetro –codeSigningCert? Bien, si lo desea, puede escribir el nombre completo del parámetro, del modo siguiente:

get-childitem cert:\. -recurse -codesigningcert

Por otro lado, puesto que el parámetro –codeSigningCert es el único parámetro -Get-ChildItem cuyo nombre empieza por la letra C, puede agregar este parámetro solamente escribiendo -c:

get-childitem cert:\. -recurse -c

Interesante. Por cierto, ¿hemos mencionado que la expansión de ficha funciona también con nombres de variable? Suponga que fue lo suficientemente insensato como para asignar el nombre nombre $TheMainVariableThatGetsUsedInMyScripta una variable. Esto supone tener que escribir mucho, especialmente para un nombre de variable. Por tanto, no lo escriba. Limítese a escribir lo siguiente y presione TAB cada vez que tenga que hacer referencia a esa variable:

$th

Increíble. Le ofrecemos otro truco. Suponga que usa el cmdlet New-Object para crear una instancia de Microsoft Excel:

$a = new-object -comobject excel.application

Escriba lo siguiente y, a continuación, presione la tecla TAB y observe lo que ocurre:

$a.

Ahora puede aplaudir.