Cómo inicializar un arreglo de objetos personalizados en PowerShell
- Usando Matrices en Windows PowerShell
- Accediendo a una Matriz en Windows PowerShell
- Cambiando Elementos en una Matriz Usando Windows PowerShell
- Iterando una Matriz en Windows PowerShell
- Creando Objetos en una Matriz Usando Windows PowerShell
- Accediendo a Objetos en una Matriz Usando Windows PowerShell
- Actualizando Objetos en una Matriz Usando Windows PowerShell
- Accediendo a Propiedades en una Matriz Usando Windows PowerShell
- Creando una ArrayList en Windows PowerShell

Las matrices son una característica fundamental de Windows PowerShell. Estas hacen posible ingerir, manipular y resultar estructuras de datos precisas (y no solo cadenas crudas).
Esta capacidad hace que PowerShell sea diferente y más práctico que otros lenguajes de scripting.
Este artículo explicará qué son las matrices, cómo crear matrices en Windows PowerShell y luego usar funciones esenciales para manipularlas.
Usando Matrices en Windows PowerShell
Las matrices en Windows PowerShell pueden contener uno o más elementos. Una matriz puede ser una cadena, un entero, un objeto o otra matriz.
Cada elemento tiene un índice que empieza en 0 e itera por elemento.
La sintaxis básica para crear una matriz es @()
.
$data = @()
Podemos poner valores dentro de los paréntesis después del @
:
$data = @('Zero', 'One', 'Two', 'Three')
Para mostrar elementos en la matriz, podemos llamar a la variable nombrada:
$data
Salida:
Zero
One
Two
Three
Accediendo a una Matriz en Windows PowerShell
Ahora que tenemos una matriz, queremos acceder a los elementos. Hay varias formas de hacerlo.
El primer método es usar el índice de los elementos en la matriz. Como hemos mencionado, los índices comienzan en 0
.
Así que necesitaremos indicarle a Windows PowerShell que mire el elemento cuyo índice asignado es cero para recuperar el primer elemento de nuestra matriz.
$data[0]
Esta sintaxis devolverá la cadena cero
porque esa fue la primera cadena que colocamos en nuestra matriz. También podemos extender este fragmento para devolver múltiples elementos de la misma matriz poniendo más índices en el mismo comando.
$data[0, 2, 3]
Salida:
Zero
Two
Three
Cambiando Elementos en una Matriz Usando Windows PowerShell
Podemos usar el mismo método para actualizar los elementos en una matriz. Por ejemplo, para actualizar el elemento cuyo índice asignado es 2, podemos ejecutar:
$data[2] = 'second'
Este método nos da acceso directo a los elementos dentro de una matriz.
Iterando una Matriz en Windows PowerShell
Una de las características más poderosas de Windows PowerShell es realizar la misma acción en todos los elementos de una matriz. El método más básico es usar un carácter de Pipeline (|
).
Por ejemplo, para agregar una descripción a cada elemento de nuestra matriz, podemos usar este comando:
$data | ForEach-Object { "Item: [$PSItem]" }
Este comando le dice al entorno de scripting de PowerShell que tome los elementos de la matriz $data
uno por uno.
Creando Objetos en una Matriz Usando Windows PowerShell
Podemos crear una matriz llena de objetos personalizados usando el mismo método con cadenas, usando la función de matriz (@()
). Por ejemplo, para hacer una lista de prueba de empleados, podemos usar:
$data = @(
[pscustomobject]@{FirstName = 'Kevin'; LastName = 'Marquette' }
[pscustomobject]@{FirstName = 'John'; LastName = 'Doe' }
)
La mayoría de los comandos nativos de PowerShell devolverán una matriz llena de objetos de este tipo cuando les asignes una variable para trabajar.
Accediendo a Objetos en una Matriz Usando Windows PowerShell
El proceso que realizamos anteriormente para acceder a piezas individuales de datos también puede usarse con matrices que contienen objetos.
$data[0]
Salida:
FirstName LastName
----- ----
John Hampton
Alternativamente, podemos obtener las propiedades de objetos individuales especificando qué propiedad nos gustaría llamar dentro del mismo comando.
$data[0].FirstName
Salida:
John
Actualizando Objetos en una Matriz Usando Windows PowerShell
La sintaxis exacta nos permite actualizar propiedades individuales dentro de objetos mantenidos en matrices.
$data[0].FirstName = 'Jay'
Accediendo a Propiedades en una Matriz Usando Windows PowerShell
En la mayoría de los lenguajes de programación y scripting, tendríamos que usar un método iterativo para acceder a todas las propiedades en varios objetos. También podemos hacer eso en Windows PowerShell.
$data | ForEach-Object { $_.LastName }
Este método devolverá una lista de todas las propiedades LastName
en nuestra matriz, pero es computacionalmente costoso y difícil de escribir cada vez que quieres ver estos datos. Así que, en su lugar, PowerShell tiene un atajo.
$data.LastName
Y verás la misma lista. PowerShell está tomando cada objeto a su turno, como antes, pero oculta esta complejidad de nosotros.
Creando una ArrayList en Windows PowerShell
Agregar elementos a matrices puede ser desafiante. Sin embargo, ArrayList maneja esto de manera más elegante, un tipo diferente de colección.
Sin embargo, tendremos que usar el marco .NET para usar este tipo de colección. Para crear una ArrayList y agregarle elementos, ejecuta lo siguiente:
$myarray = [System.Collections.ArrayList]::new()
[void]$myArray.Add('Value')