La mejor hoja de trucos de PowerShell

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

Pero ahora he pasado algún tiempo haciendo la mejor hoja de trucos de PowerShell. Este no es solo para principiantes, sino que también los usuarios avanzados aún encontrarán un gran valor en él.

En esta hoja de trucos, encontrará todos los operadores, consejos para trabajar con variables, declaraciones de control de flujo (if-else, bucles, etc.) y colecciones y hashtable. También he agregado el nuevo PowerShell 7y el.

Hoja de trucos de PowerShell Descargar

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

La mayoría de los comandos también se explican en este sitio web, solo 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.

Bueno saber

La primera sección en la hoja contiene algunos comandos de saldo. Uno de mis comandos más utilizados es la función 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, solo tiene que presionar TAB dos veces para ver todos los parámetros posibles.

Set-PSReadlineKeyHandler -Key Tab -Function Complete

También elGet-HistoryCMDLET Beats presionando 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, al igual que cualquier otro lenguaje de programación o secuencia de comandos que pueda usar. En la hoja, encontrará los más utilizados para su conveniencia. He agrupado las contrapartes de los operadores para ahorrar algo de espacio.

OperadorDescripción
$a += 5 o$a -= 5Agregar y asignar o restar y asignar
$a *= 2 o$a /= 2Multiplicar y asignar o dividir y asignar
2 -eq $a o2 -ne $aMayor o igual (variable en el lado derecho)
$a -gt 2 o$a -lt 2Mayor o menos que
2 -ge $aMenor o igual (variable en el lado derecho)
2 -le $aMenor o igual (variable en el lado derecho)
Operadores de PowerShell

He escrito un artículo completo sobre, asegúrese de verificarlo si desea saber más.

Variables y objetos

Asignar variables es bastante sencilla, pero en PowerShell, hay algunos métodos convenientes para crear rápidamente un rango o asignar múltiples variables. Además, elpuede ser útil en algunas ocasiones. Pero tenga en cuenta que no use el alcance global para todo, a menudo hay una mejor manera.

DominioDescripción
$a = "Hello"Asignar un valor a una variable
$a, $b = "Hello","Bye"Asignación de variables múltiples
$range = 1..10Crear una matriz con una secuencia
$_Obtener objeto de tubería actual
$nullValor nulo
[type]$varDeclarado tipado (int, string) variable
$global:varAsignar variable en el alcance global
Variables y objetos de PowerShell

Declaraciones de control de flujo

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

Además, else usan comúnmente y a menudo conocidos. Pero menos conocidos son el nuevo operador ternario y elque están disponibles en PowerShell 7.

DeclaraciónDescripción
if ($condition) { } else { }Declaración simple if-else
($x -gt 10) ? "High" : "Low"Operador ternario para IF-else(PS7)
switch ($var) { }Instrucción de cambio
for ($i=0; $i -lt 10; $i++) { }Estándar para bucle
foreach ($item in $collection) {}Bucle para iterar colecciones
while ($condition) { }Mientras que el bucle con una condición
$result = $value ?? "Default"Asigna predeterminado si el valor es nulo(PS7)
$value ??= DefaultValueAsigna si es nulo(PS7)
$result = ${object}?.PropertyPropiedad de acceso si existe el objeto(PS7)
$element = ${array}?[index]Elemento de acceso si existe una matriz(PS7)
Declaraciones de control de flujo

Colecciones y hashtables

Cuando trabaja con conjuntos de datos, realmente no puede hacer sin una matriz, hashtable u objeto. En la hoja de trucos de PowerShell, encontrará todo lo que necesita crear, asignar o recuperar información de uno de los elementos de recopilación.

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

DominioDescripción
$array = @('item1', 'item2', 'item3')Crear matriz con valor
$array[index]Elemento de matriz de acceso
$array.LengthObtener la longitud de la matriz
$array.Add(item)Agregar elemento a la matriz
$array.Remove(item)Eliminar el artículo de la matriz
$hash = @{
key1 = 'value1';
key2 = 'value2';
}
Crear mesa hash
$hash.key1Clave de hash de acceso
$hash.key2 = 'new value'Asignar valor a la clave hash
$hash.Add('key3', 'value')Agregar par de valores clave
$hash.Remove('key2')Eliminar el par de valores de llave
$obj = [PSCustomObject]@{
Prop1 = 'Val1';
Prop2 = 'Val2'
}
Objeto personalizado
PowerShell colecciones y hashtable

Entrada/salida

PowerShell también es excelente para exportar datos fuera de sistemas (por ejemplo, Microsoft 365) y generar informes. Los cmdlets de base que necesitará saber para esto se enumeran en la hoja. Pero si quieres saber más, asegúrate de ver también el.

DominioDescripción
$var = Read-HostLeer la entrada del usuario
Get-ContentLeer contenido de archivo
Import-CsvImportar desde el archivo CSV
Export-CsvExportar al archivo CSV
Write-Host "Hello"Escribir en la consola
Write-Host "$($obj.test)"Escribe en la consola con propiedad OBJ
$var | Out-GridViewSalida a la vista de cuadrícula interactiva
Entrada/salida

Ejecución de scripts y procesamiento

Ejecutar un guión de PowerShell no es tan difícil. ¿Pero sabes cómo ejecutar un script en el alcance actual? O como tarea de fondo? La mayoría no usa estos métodos a diario, pero puede ser muy útil, por lo que los he enumerado en la hoja de trucos para su referencia.

DominioDescripción
Start-Process notepadIniciar proceso o aplicación externa
Start-ThreadJob -ScriptBlock {
Get-Process }
Ejecutar script o tarea en segundo plano
. .\script.ps1Ejecute un script en el alcance actual (fuga de puntos)
& .\script.ps1Ejecutar el script en un nuevo alcance (operador de llamadas)
Ejecución de scripts y procesamiento

Tubería y formato

El carácter de la tubería en PowerShell le permite pasar resultados para el lado izquierdo a otro cmdlet o scriptblock en el lado derecho. De esta manera, no tiene que "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 genial verificar rápidamente la forma correcta utilizando el método de tubería.

DominioDescripción
Get-Process | Sort-Object -Property NameOrdenar procesos por nombre
Get-ChildItem *.txt | Where-Object {$_.Length -gt 1KB}Filtrar archivos de texto más grandes que 1kb
Get-Process | Select-Object -Property Name, ID, CPUSeleccione el nombre del proceso, la identificación y el uso de la CPU
Get-Process | ForEach-Object {$_.ProcessName}Procesar cada elemento en la tubería
Get-ChildItem | Format-List -Property Name, LengthMostrar el nombre y la longitud del archivo en una lista
Get-Process | Format-Table -Property ID, CPU -AutoSizeMostrar procesos en una tabla con columnas de tamaño automático
Tubería y formato

Concluir

Asegúrate de que tue imprimo para que pueda verificarlo rápidamente. Si le gusta la hoja, asegúrese de compartirla con sus colegas. Si no le gusta una 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.

Related Posts