Pide tu presupuesto ya!

Dominar bloques de scripts, matrices y tablas hash

A medida que profundiza en PowerShell, encontrará tres componentes principales esenciales para cualquier usuario de PowerShell: bloques de secuencias de comandos, matrices y tablas hash.

Los bloques de script le permiten encapsular y ejecutar fragmentos de código reutilizables; Las matrices le permiten organizar y manipular colecciones de datos. Al mismo tiempo, las tablas hash proporcionan una forma poderosa de almacenar y acceder a pares clave/valor.

Ya sea que sea un principiante o esté buscando perfeccionar sus habilidades, comprender estos conceptos mejorará significativamente su capacidad para escribir scripts de PowerShell efectivos.

Aprovechando los bloques de script para código reutilizable

Cuando ejecuta cualquier comando o código, ese código se llama expresión. Es un fragmento finito de código que ejecuta PowerShell.

Por ejemplo, para comprobar si existe un archivo, puede utilizar el Test-Path dominio:

Test-Path -Path C:\file.txt

Este comando es una expresión. Si necesita ejecutar este comando en varios lugares de su secuencia de comandos, puede encerrarlo entre llaves para crear un bloque de secuencia de comandos.

$myScriptBlock = { Test-Path -Path C:\file.txt }

El bloque de script parece una cadena normal.

Pero cuando agregas un signo comercial (&), PowerShell ejecuta el código dentro del bloque de script.

Los bloques de secuencias de comandos le permiten almacenar y ejecutar código en una variable según sea necesario, lo que los hace versátiles y reutilizables. Los bloques de secuencias de comandos se utilizan en diversas áreas de PowerShell y son un concepto esencial de comprender.

Ejecutando el código dentro de un scriptblock

Aprovechando el poder de las matrices y las listas genéricas

Anteriormente, trabajábamos con valores únicos como cadenas, números o valores booleanos. Exploremos ahora colecciones de objetos, comenzando con matrices.

Las matrices sirven como estructura de datos básica en PowerShell, facilitando la gestión de colecciones de elementos relacionados. Al utilizar matrices, puede consolidar múltiples valores en una sola variable, mejorando la organización y la eficiencia de la gestión de datos.

Considere un script de selección de color que contenga cuatro colores: blue, white, yellowy black.

$colorPicker = @('blue','white','yellow','black')

Trabajar con matrices

Las matrices en PowerShell se indican mediante el @ símbolo, con elementos separados por comas dentro de paréntesis. Puede leer y manipular estos elementos como un solo conjunto.

Por ejemplo, lea la matriz completa.

Leer una matriz completa

Para leer un elemento específico, haga referencia a su índice comenzando desde cero (0).

$colorPicker[0]
$colorPicker[2]
$colorPicker[3]
Leer elementos de matriz específicos por índice

También puede utilizar el operador de rango para leer una secuencia de elementos.

Leer una secuencia de elementos de una matriz.

Los elementos de una matriz se pueden agregar, eliminar o modificar, como un valor escalar.

Para cambiar el primer elemento (0):

$colorPicker[0] = 'pink'
$colorPicker
Cambiar un elemento de matriz

Para agregar (+) un nuevo elemento:

$colorPicker = $colorPicker + 'orange'
$colorPicker
Agregar un elemento de matriz

O use un atajo para agregar el elemento (+=):

$colorPicker += 'brown'
$colorPicker
Agregar un elemento de matriz mediante el método de acceso directo

Al agregar varios elementos a la vez:

$colorPicker += @('pink','cyan')
$colorPicker
Agregar múltiples elementos de matriz a la vez

Administrar elementos en listas genéricas

Además de las matrices, puedes utilizar un tipo diferente de colección llamada lista o, más específicamente, lista genérica.

$colorPicker = [System.Collections.Generic.List[string]]@('blue','white','yellow','black')
$colorPicker

Este código convierte la matriz en una System.Collections.Generic.List de cuerdas.

Convertir una matriz en una lista genérica de cadenas

Con esta lista, puede agregar elementos usando el Add() método.

$colorPicker.Add('gray')
$colorPicker
Agregar un elemento de una lista mediante el método Add()

O eliminar elementos usando el Remove() método.

$colorPicker.Remove('gray')
$colorPicker
Agregar un elemento de una lista mediante el método Remove()

Optimización de la gestión de datos con Hashtables

Otra estructura de datos sólida en PowerShell son las tablas hash. Si bien las matrices son excelentes para manejar listas de elementos, las tablas hash ofrecen una forma más avanzada de almacenar y recuperar datos utilizando pares clave/valor.

Esta capacidad hace que las tablas hash sean ideales para tareas en las que se deben buscar rápidamente valores basados ​​en identificadores únicos.

Ahora, exploremos las tablas hash de la siguiente manera:

$users = @{
 abertram = 'Adam Bertram';
 raquelcer="Raquel Cerillo";
 zheng21 = 'Justin Zheng'
}
$users

A diferencia de las matrices, las tablas hash almacenan una etiqueta o clave que describe el valor.

Por ejemplo, esta tabla hash asigna nombres de usuario a sus nombres completos.

Crear una tabla hash de muestra

Puede leer elementos utilizando notación de puntos o corchetes.

$users['abertram']
$users.abertram
Leer elementos mediante notación de puntos y corchetes

A continuación, para obtener una lista de claves o valores:

$users.Keys
$users.Values
Lectura de claves y valores de elementos

Si prefieres ver los elementos en un estilo bien formateado:

Select-Object -InputObject $users -Property *
Leer y mostrar elementos en un formato agradable.

Al agregar elementos a una tabla hash, haga referencia a la clave entre paréntesis y asigne un valor.

$users['phrigo'] = 'Phil Rigo'
$users
Agregar elementos a una tabla hash

Para verificar si una tabla hash contiene una clave particular, use el ContainsKey() método.

Este método regresa $true si la clave existe o $false si no.

$users.ContainsKey('johnnyq')
$users.ContainsKey('phrigo')
$users
Verificar que una clave específica exista en una tabla hash

Y finalmente, para eliminar un elemento, use el Remove() método con la clave.

$users.Remove('raquelcer')
$users
Eliminar una clave específica de una tabla hash

Conclusión

Con conocimientos sobre bloques de secuencias de comandos, matrices y tablas hash, ahora dispone de un conjunto de herramientas versátil para gestionar datos y código reutilizable en PowerShell. Estos conceptos básicos hacen que sus scripts sean más limpios y eficientes y sientan las bases para abordar tareas de PowerShell más avanzadas.

¡Continúe desarrollando estas habilidades y encontrará nuevas formas de automatizar y optimizar sus flujos de trabajo en PowerShell!

Written by

Leave a comment