Matrices de PowerShell cómo crearlas y usarlas

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. Pero las variables únicas no son suficientes para la mayoría de los fines, 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 cada lenguaje de programación de alguna forma. Pero, ¿qué pasa con Windows PowerShell?? ¿Cómo funcionan las matrices de PowerShell?? ¿Cómo los usas?? ¿Cuál es su sintaxis?? Vamos a averiguar.

Tabla de contenido

    Matrices de PowerShell 101

    Simplemente 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 colapsando variables relacionadas en un conjunto numerado.

    En PowerShell, puede crear una variable prependiendo el símbolo $ a un nombre variable. Por ejemplo:

    $ Prime = 13

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

    $ name = "Levin"

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

    $ Week = "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"

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

    $ Week = @("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo")

    Esto generalmente es útil cuando se trata de poner la salida de otros comandos en una matriz, donde no puede escribirlos manualmente en el formato correcto.

    Creando 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 podrían ser más adecuadas. Por ejemplo, si desea crear una matriz que contenga una gama de números, puede usar el operador de rango:

    $ dígitos = (0 ... 9)

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

    $ valores = @()

    Múltiples matrices incluso pueden anidarse entre sí, aunque este tipo de uso puede ser confuso muy rápido.

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

    Por defecto, una matriz puede almacenar cualquier tipo de variable, ya sea números, cadenas o una mezcla de ambos. Pero puede definir explícitamente un tipo en caso de que desee limitar los valores que se ponen en él. Por ejemplo:

    [int []] $ números = 2,3,4,5

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

    Acceso a matrices

    Hasta ahora hemos visto múltiples métodos para crear matrices que contienen varios tipos de datos. Pero, ¿cómo se hace para acceder a estos datos??

    Las matrices de PowerShell usan el mismo formato utilizado por otros lenguajes de programación. Se puede acceder a cada variable de matriz mediante su número de índice. Por ejemplo:

    $ var = $ números [5]

    Esto copiará el valor almacenado en el índice cinco del $ Números matriz en el $ var variable. Tenga 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:

    "$ Días [2]"

    Obtendremos 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:

    $ números [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.

    $ nombres += "Johny"

    Este método se puede usar para agregar múltiples entradas a la vez, o incluso matrices completas.

    $ nombres += "Charlie, Liam, Teresa"

    $ nombres += $ Surnames

    El método separado por comas se mantiene para acceder a múltiples elementos de matriz también. Entrar en esto, por ejemplo, almacena los primeros cinco elementos de $ días en $ lunes a viernes.

    $ Weathdays = $ días [0,1,2,3,4]

    Iterando a través de matrices

    Acceder manualmente a elementos particulares de una matriz es bueno y bueno, pero si desea realizar acciones en todo el contenido de una matriz, puede ser tedioso. Un enfoque más elegante es usar un bucle para.

    Para los bucles puede pasar sistemáticamente todos los elementos de una matriz, procesando cada valor de acuerdo con las instrucciones. Así es como puedes construir tal bucle:

    Para ($ i = 0; $ i -lt $ días.Longitud ; $ i ++)

        $ días [$ i]

    La matriz.La función de longitud devuelve el tamaño de la matriz, que es básicamente el número de elementos en ella. Esto se puede conectar a un parámetro de expresión de prueba para bucle para iterar exhaustivamente sobre todos los elementos.

    El bucle foreach y el bucle foreach-object pueden hacer lo mismo con un script PowerShell aún más delgado.

    Foreach ($ día en $ días)

        $ día

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

    ¿Cuándo deberías usar matrices de PowerShell?

    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 nombre de forma única, lo que dificulta recordar su propósito.

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

    El caso de uso principal de Microsoft PowerShell 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 iterados sobre. Esto permite que las tareas secuenciales se realicen automáticamente, simplificando en gran medida la administración del sistema.