¿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 trucos, encontrará todos los operadores, consejos sobre cómo trabajar con variables, declaraciones de control de flujo (si-si no, bucles, etc.) y colecciones y tablas hash. También agregué el nuevo PowerShell 7.y el.
Para obtener su copia de la hoja de referencia, 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. Puedes hacer esto presionandoCtrl +Spacedespués de haber escrito un cmdlet.
Para hacerlo aún más fácil, recomiendo agregar el siguiente comando a su. 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
También elGet-Historycmdlet 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.
| Operador | Descripción |
|---|---|
$a += 5 o$a -= 5 | Sumar y asignar o Restar y asignar |
$a *= 2 o$a /= 2 | Multiplicar y asignar o Dividir y asignar |
2 -eq $a o2 -ne $a | Mayor o igual que (variable del lado derecho) |
$a -gt 2 o$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, asegúrate de marcarlo 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, elpuede resultar útil en algunas ocasiones. Pero tenga en cuenta que no utilice el alcance global para todo; a menudo hay una manera mejor.
| Dominio | Descripción |
|---|---|
$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, else utilizan comúnmente y a menudo son bien conocidos. Pero menos conocidos son el nuevo operador ternario y elque están disponibles en PowerShell 7.
| Declaración | Descripción |
|---|---|
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 | Acceder 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, realmente no se puede prescindir de una matriz, una tabla hash u 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, 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.
| Dominio | Descripción |
|---|---|
$array = @('item1', 'item2', 'item3') | Crear matriz con valor |
$array[index] | Acceder al elemento de la matriz |
$array.Length | Obtener longitud de la matriz |
$array += "item“ | Agregar elemento a la matriz |
$array = $array | Where-Object { $_ -ne"artículo"} | 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 quieres saber más, asegúrate de consultar también el.
| Dominio | Descripción |
|---|---|
$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.
| Dominio | Descripción |
|---|---|
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.
| Dominio | Descripció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úrate de quee imprímelo para que puedas comprobarlo 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.














![Las notificaciones push de Edge no funcionan [Solucionar]](https://elsefix.com/tech/tejana/wp-content/uploads/2024/12/Edge-push-notifications-not-working.png)