Comandos y cmdlets en PowerShell

Una de las ventajas inmediatas que encontraremos en PowerShell es que tendremos a nuestra disposición la mayoría de órdenes que ya conocemos de la línea de comandos tradicional de Windows.

Por ejemplo, PowerShell tiene el cmdlet Get-ChildItem para mostrar el nombre de los archivos y las carpetas que hay en una determinada ruta. De este modo, escribiendo únicamente el nombre del cmdlet, podré ver los archivos y carpetas del directorio actual:

Get-ChildItem

Salida del cmdlet Get-ChildItem.

Scripts-en-PowerShell-Guia-para-principiantes-010

Sin embargo, seguimos teniendo a nuestra disposición el comando dir, que hacía las mismas funciones en la antigua línea de comandos. Así, sólo escribiendo la orden, obtendré un resultado equivalente al anterior:

dir

Salida del comando dir comparada con la de Get-ChildItem.

Scripts-en-PowerShell-Guia-para-principiantes-011

Lo que hemos hecho con el comando dir es sólo una prueba, pero existe un gran número de comandos antiguos que siguen funcionando perfectamente en PowerShell. Esto significa que podrás comenzar a utilizar PowerShell con tus conocimientos anteriores, en lugar de aprender al principio un número elevado de cmdlets.

Windows logoEn este libro, no tenemos el objetivo de explicar exhaustivamente todos los cmdlets de PowerShell. Sería demasiado extenso y repetitivo, porque Microsoft ya lo hace, de forma muy precisa, en su sitio web.

En particular, puedes encontrar información sobre los cmdlets más comunes en https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.management/microsoft.powershell.management.

También puedes obtener información sobre cualquier comando usando la ayuda del propio PowerShell. Para lograrlo, sólo tienes que utilizar el cmdlet Get-Help. Por ejemplo:

Get-Help Get-ChildItem
Ayuda de Get-ChildItem

Aún así, cada vez que usemos un nuevo comando, te explicaremos su función y el significado de los argumentos que incluyamos.

En realidad, la forma que tiene PowerShell de dar soporte a comandos antiguos es utilizando alias.

Podríamos decir que un alias es un sobrenombre, un apodo, por el que PowerShell puede conocer a cualquiera de sus cmdlets. Así, en PowerShell el comando dir no es más que un alias del cmdlet Get-ChildItem. De hecho, si te fijas en la imagen anterior, la información que ofrece Get-Help sobre Get-ChildItem ya nos informa de que tiene tres alias: gci, ls, dir.

Esta característica puedes utilizarla también cuando conoces el nombre del alias (el comando antiguo), pero no conoces el cmdlet correspondiente. En ese caso, basta con utilizar Get-Help seguido del nombre del alias:

Get-Help dir

Como ves en la imagen, la ayuda ofrecida es la del cmdlet que se corresponde con el alias.

Scripts-en-PowerShell-Guia-para-principiantes-013

Los nombres de todos los cmdlets siguen un patrón común, formado por un verbo, un guión y un nombre en singular. De este modo será mucho más fácil recordarlos.

Habitualmente, se escribe con mayúsculas la primera letra de cada palabra, pero no se trata más que de una norma de estilo, porque PowerShell no distingue entre mayúsculas y minúsculas.

Además, PowerShell dispone de autocompletado de comandos y parámetros (incluidos sus valores). Basta con comenzar a escribir un cmdlet y, cuando pensemos que hemos escrito lo suficiente para que PowerShell lo identifique, pulsamos la tecla Tab. En ese momento, PowerShell terminará de escribir el cmdlet por nosotros. A continuación, podremos hacer lo mismo con los parámetros y sus valores.

Si lo que utilizamos es PowerShell ISE, al escribir aparecerá una ventana con todos los cmdlets que coincidan con el texto que hemos escrito. Incluso puede aparecer un recuadro con ayuda sobre la sintaxis del cmdlet sugerido en ese momento. Para aceptar la sugerencia y que se complete la escritura, bastará con pulsar la tecla Intro.

Autocompletado de sintaxis