Búsqueda de sitios web

La mejor hoja de referencia de PowerShell


¿Busca una buena hoja de referencia de PowerShell? Entonces estás en el lugar correcto. He estado trabajando con PowerShell durante los últimos 10 años. Durante ese tiempo, escribí los cmdlets, operadores o comandos más útiles en muchos lugares, solo para recordárselos.

Pero ahora he dedicado algo de tiempo a crear la mejor hoja de referencia de PowerShell. Este no es sólo para principiantes, sino que también los usuarios avanzados encontrarán un gran valor en él.

En esta hoja de referencia, encontrará todos los operadores, consejos sobre cómo trabajar con variables, declaraciones de control de flujo (if-else, bucles, etc.) y colecciones y tablas hash. También agregué los nuevos operadores ternarios de PowerShell 7 y los operadores de fusión nula.

Descarga de la hoja de referencia de PowerShell

Para obtener su copia de la hoja de trucos, simplemente complete el formulario a continuación y recibirá una versión en PDF que podrá imprimir en su buzón de correo.

La mayoría de los comandos también se explican en este sitio web, simplemente use la función de búsqueda en la esquina superior derecha para buscar rápidamente un comando en particular. También explicaré brevemente los diferentes elementos de este artículo para su referencia.

Es bueno saberlo

La primera sección de la hoja contiene algunos comandos que es bueno conocer. Uno de mis comandos más utilizados es la función de mostrar todos los parámetros. Puede hacerlo presionando Ctrl +Espacio después de haber escrito un cmdlet.

Para hacerlo aún más fácil, recomiendo agregar el siguiente comando a su perfil de PowerShell. De esta manera sólo tendrás que presionar Tab dos veces para ver todos los parámetros posibles.

Set-PSReadlineKeyHandler -Key Tab -Function Complete

Además, el cmdlet Get-History es mejor que presionar la tecla de flecha hacia arriba para encontrar el comando que usó hace un par de minutos. Asegúrate de probarlo.

Operadores

PowerShell tiene muchos operadores, como cualquier otro lenguaje de programación o scripting, que puedes usar. En la ficha encontrarás los más utilizados para tu comodidad. He agrupado las contrapartes de los operadores para ahorrar algo de espacio.

$a += 5 or $a -= 5

Sumar y asignar o Restar y asignar

$a *= 2 or $a /= 2

Multiplicar y asignar o Dividir y asignar

2 -eq $a or 2 -ne $a

Mayor o igual que (variable del lado derecho)

$a -gt 2 or $a -lt 2

Mayor o menor que

2 -ge $a

Menor o igual (variable del lado derecho)

2 -le $a

Menor que o Igual (variable en el lado derecho)

He escrito un artículo completo sobre los operadores de PowerShell, asegúrate de consultarlo si quieres saber más.

Variables y objetos

Asignar variables es bastante sencillo, pero en PowerShell existen algunos métodos convenientes para crear rápidamente un rango o asignar múltiples variables. Además, los ámbitos de PowerShell pueden resultar útiles en algunas ocasiones. Pero tenga en cuenta que no utilice el alcance global para todo; a menudo hay una manera mejor.

$a = "Hello"

Asignar un valor a una variable

$a, $b = "Hello","Bye"

Asignación de múltiples variables

$range = 1..10

Crear una matriz con una secuencia

$_

Obtener el objeto de canalización actual

$null

valor nulo

[type]$var

Variable escrita declarada (int, cadena)

$global:var

Asignar variable en alcance global

Declaraciones de control de flujo

Las declaraciones de control de flujo le permiten controlar lo que su secuencia de comandos debe hacer a continuación en función de determinadas condiciones. La declaración de control de flujo más comúnmente conocida es, por supuesto, la declaración if-else.

Además, los bucles For y ForEach se utilizan habitualmente y, a menudo, son muy conocidos. Pero menos conocidos son el nuevo operador Ternario y los operadores de fusión nula que están disponibles en PowerShell 7.

if ($condition) { } else { }

Declaración simple If-Else

($x -gt 10) ? "High" : "Low"

Operador ternario para if-else (PS7)

switch ($var) { }

Declaración de cambio

for ($i=0; $i -lt 10; $i++) { }

Estándar para bucle

foreach ($item in $collection) {}

Bucle para iterar colecciones

while ($condition) { }

Bucle while con una condición

$result = $value ?? "Default"

Asigna valor predeterminado si el valor es nulo (PS7)

$value ??= DefaultValue

Asigna si es nulo (PS7)

$result = ${object}?.Property

Acceda a la propiedad si el objeto existe (PS7)

$element = ${array}?[index]

Acceda al elemento si la matriz existe(PS7)

Colecciones y tablas hash

Cuando se trabaja con conjuntos de datos, no se puede prescindir de una matriz, una tabla hash o un objeto. En la hoja de referencia de PowerShell, encontrará todo lo que necesita para crear, asignar o recuperar información de uno de los elementos de la colección.

¿Sabías que las tablas hash también son particularmente útiles cuando se trata de hacer que tu código sea más legible? Con splatting, podemos agrupar los parámetros de los cmdlets en una bonita tabla antes de asignarlos. Esto hace que sea mucho más fácil editar el valor de los parámetros, sin necesidad de desplazamiento horizontal.

$array = @('item1', 'item2', 'item3')

Crear matriz con valor

$array[index]

Acceder al elemento de la matriz

$array.Length

Obtener longitud de la matriz

$array.Add(item)

Agregar elemento a la matriz

$array.Remove(item)

Eliminar elemento de la matriz

$hash = @{
key1 = 'value1';
key2 = 'value2';
}

Crear tabla hash

$hash.key1

Acceder a la clave hash

$hash.key2 = 'new value'

Asignar valor a la clave hash

$hash.Add('key3', 'value')

Agregar par clave-valor

$hash.Remove('key2')

Eliminar par clave-valor

$obj = [PSCustomObject]@{
Prop1 = 'Val1';
Prop2 = 'Val2'
}

Objeto personalizado

Entrada/Salida

PowerShell también es excelente para exportar datos desde sistemas (por ejemplo, Microsoft 365) y generar informes. Los cmdlets básicos que necesitará conocer para esto se enumeran en la hoja. Pero si desea saber más, asegúrese de consultar también el módulo PowerShell Excel.

$var = Read-Host

Leer la entrada del usuario

Get-Content

Leer el contenido del archivo

Import-Csv

Importar desde archivo CSV

Export-Csv

Exportar a archivo CSV

Write-Host "Hello"

Escribir en la consola

Write-Host "$($obj.test)"

Escribir en la consola con la propiedad obj

$var | Out-GridView

Salida a vista de cuadrícula interactiva

Ejecución de scripts y procesamiento

Ejecutar un script de PowerShell no es tan difícil. ¿Pero sabes cómo ejecutar un script en el ámbito actual? ¿O como tarea en segundo plano? La mayoría no usa estos métodos a diario, pero pueden resultar muy útiles, por lo que los he enumerado en la hoja de trucos para su referencia.

Start-Process notepad

Iniciar proceso o aplicación externa

Start-ThreadJob -ScriptBlock {
Get-Process }

Ejecutar script o tarea en segundo plano

. .\script.ps1

Ejecutar un script en el alcance actual (punto de abastecimiento)

& .\script.ps1

Ejecutar script en un nuevo alcance (llamar al operador)

Canalización y formato

El carácter de canalización en PowerShell le permite pasar resultados del lado izquierdo a otro cmdlet o bloque de script en el lado derecho. De esta manera, no es necesario "almacenar" los resultados en una variable y crear bucles para todo.

Los usuarios de PowerShell más experimentados conocen estos métodos, pero cuando eres bastante nuevo en PowerShell, es fantástico comprobar rápidamente la forma correcta utilizando el método de canalización.

Get-Process | Sort-Object -Property Name

Ordenar procesos por nombre

Get-ChildItem *.txt | Where-Object {$_.Length -gt 1KB}

Filtrar archivos de texto de más de 1 KB

Get-Process | Select-Object -Property Name, ID, CPU

Seleccione el nombre del proceso, ID y uso de CPU

Get-Process | ForEach-Object {$_.ProcessName}

Procesar cada elemento en el proceso

Get-ChildItem | Format-List -Property Name, Length

Mostrar el nombre y la longitud del archivo en una lista

Get-Process | Format-Table -Property ID, CPU -AutoSize

Mostrar procesos en una tabla con columnas de tamaño automático

Concluyendo

Asegúrese de descargar esta hoja de referencia de PowerShell e imprimirla para poder consultarla rápidamente. Si te gusta la hoja, asegúrate de compartirla con tus colegas. Si no le gusta la versión impresa, siempre puede marcar esta página, que contiene la misma información.

Si tiene alguna pregunta o conoce un comando que realmente necesita estar en la hoja, simplemente deje un comentario a continuación.

Artículos relacionados