Matrices de PowerShell: cómo crearlas y usarlas

Las variables son la estructura de datos más básica en cualquier tipo de codificación(any type of coding) . Pero las variables individuales difícilmente son suficientes para la mayoría de los propósitos, especialmente cuando se trata de algoritmos más complejos.

Ahí es donde entran las matrices. Ya sea C++ o Python , las matrices están presentes en todos los lenguajes de programación de alguna forma. Pero, ¿qué pasa con Windows PowerShell ? ¿Cómo funcionan las matrices de PowerShell ? (PowerShell)¿Cómo los usas? ¿Cuál es su sintaxis? Vamos a averiguar.

Arreglos de PowerShell 101

Simplemente(Simply) hablando, una matriz es solo una colección estructurada de variables. La idea es eliminar la molestia de realizar un seguimiento de docenas de nombres mediante el colapso de las variables relacionadas en un conjunto numerado.

En PowerShell , puede crear una variable anteponiendo el símbolo $ al nombre de una variable. Por ejemplo:

$prime = 13

La variable puede contener cualquier tipo de datos, desde números hasta cadenas. Solo necesita usar comillas simples o dobles para especificar una cadena.

$name = “Levin”

Ahora, para crear una nueva matriz, simplemente asigne múltiples valores a la misma variable, separados por comas. Como esto:

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

Algunas personas prefieren convertir explícitamente una variable en una matriz para evitar confusiones, aunque eso no es necesario. Para hacer esto, coloque los valores entre paréntesis precedidos por el símbolo @.

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

Esto suele ser útil cuando se intenta colocar la salida de otros comandos en una matriz, donde no se pueden escribir manualmente en el formato correcto.

Crear una matriz

Ya hemos visto el método más común para crear una matriz. Pero dependiendo de la situación, hay otras formas que pueden ser más adecuadas. Por ejemplo, si desea crear una matriz que contenga un rango de números, puede usar el operador de rango:

$digits = (0..9)

Esto creará una matriz de todos los diez dígitos del cero al nueve. También puede inicializar una matriz vacía, en caso de que solo desee un lugar para almacenar valores más adelante.

$values = @()

(Multiple)Incluso se pueden anidar varias matrices entre sí, aunque este tipo de uso puede volverse confuso muy rápido.

$coordinates = @(
    (5, 10, 23),
    (11, 7, 16)
)

De forma predeterminada, una matriz puede almacenar cualquier tipo de variable, ya sean números, cadenas o una combinación de ambos. Pero puede definir explícitamente un tipo en caso de que desee limitar los valores que se le asignan. Por ejemplo:

[int[]] $numbers = 2,3,4,5

De esta manera, la matriz solo puede contener números enteros. Intentar asignarle cualquier otro tipo de valor devolverá un error. Esto puede ser útil para evitar errores simples para matrices que trabajan exclusivamente con valores numéricos, ya que ingresar una cadena en una variable para usarla en los cálculos creará problemas.

Accediendo a matrices

Hasta ahora hemos visto varios métodos para crear arreglos que contienen varios tipos de datos. Pero, ¿cómo haces para acceder a estos datos?

Los arreglos de PowerShell(PowerShell) usan el mismo formato que usan otros lenguajes de programación. Se puede acceder a cada variable de matriz por su número de índice. Por ejemplo:

$var = $numbers[5]

Esto copiará el valor almacenado en el índice cinco de la matriz $numbers en la variable $varTenga en cuenta que los índices de matriz comienzan a contar desde 0, por lo que se accede al primer elemento con cero.

Si tuviéramos que generar esto, por ejemplo:

“$days[2]”

Recibimos el miércoles, no el martes.

Puede usar este mismo método para modificar estos valores también. Por ejemplo, el siguiente comando cambiará el segundo elemento de la matriz a cero:

$numbers[1] = 0

También puede agregar más elementos a una matriz existente en lugar de cambiar los valores de las entradas actuales simplemente agregándolos como una expresión aritmética.

$names += “Johny”

Este método también se puede usar para agregar varias entradas a la vez, o incluso matrices completas.

$names += “Charlie, Liam, Teresa”

$names += $surnames

El método separado por comas también es válido para acceder a varios elementos de la matriz. Ingresar esto, por ejemplo, almacena los primeros cinco elementos de $days en $weekdays .

$weekdays = $days[0,1,2,3,4]

Iterando a través de matrices

El acceso manual a elementos particulares de una matriz está muy bien, pero si desea realizar acciones en todo el contenido de una matriz, puede volverse tedioso. Un enfoque más elegante es usar un bucle For.

Los bucles for pueden pasar sistemáticamente por todos los elementos de una matriz, procesando cada valor de acuerdo con las instrucciones. Así es como puedes construir un bucle de este tipo:

For ($i = 0 ; $i -lt $days.Length ; $i++){
    $days[$i]}

La función array.Length devuelve el tamaño de la matriz, que es básicamente el número de elementos que contiene. Esto se puede conectar al parámetro de expresión de prueba de un bucle For para iterar de manera integral sobre todos los elementos.

El bucle Foreach y el bucle Foreach -objeto(Foreach) pueden hacer lo mismo con un script de PowerShell aún más eficiente.(PowerShell)

Foreach ($day in $days){
    $day}

Esto le ahorra el esfuerzo de determinar el tamaño de la matriz, dejando que PowerShell maneje los detalles.

¿Cuándo debe usar arreglos de PowerShell ?(PowerShell Arrays)

La mayor fuente de errores en un script complejo son las variables referenciadas incorrectamente. Esto sucede debido a la presencia de una gran cantidad de variables con nombres únicos, lo que dificulta recordar su propósito.

La solución más sencilla para este problema es utilizar matrices de forma extensiva. Todas las variables relacionadas de alguna manera se pueden asignar a una sola matriz y se puede acceder a ellas a través de sus números de índice.

El caso de uso principal de Microsoft PowerShell(Microsoft PowerShell’s) es la automatización, y las matrices juegan un papel fundamental en eso. Los objetos devueltos por los cmdlets de PowerShell se pueden almacenar en matrices y se pueden iterar. Esto permite que las tareas secuenciales se realicen automáticamente, lo que simplifica enormemente la administración del sistema.



About the author

Soy un MVP de Windows y trabajo con Windows desde 2007. Mi experiencia incluye desarrollo de software, hardware y sonido, y aplicaciones de Windows. Siempre estoy buscando las mejores formas de mejorar la experiencia del usuario en mi trabajo, por lo que si necesita ayuda para diseñar o desarrollar una aplicación de software, definitivamente puedo ofrecerle mis servicios.



Related posts