Búsqueda de sitios web

PowerShell agregar a la matriz | ¿Cómo se agrega PowerShell a la matriz Works?


Introducción a PowerShell agregar a una matriz

La matriz de PowerShell es la colección de elementos de uno o diferentes tipos de datos, y el método agregar a la matriz significa agregar los nuevos elementos en el índice particular de la matriz o la lista de la matriz con los diferentes métodos como el operador más igual ( +=) o el método Add() y también las múltiples matrices con tipos de datos únicos o diferentes se pueden fusionar en una para formar una sola matriz.

Sintaxis:

1. La sintaxis del operador más igual (+=).

$array1 = @(value1, Value2, value3)
$array1 += "Value4"

2. Con el método Add() de la lista de matrices.

$arr = [System.Collections.ArrayList]@('Value1', 'Value2', 'Value3')
$arr.Add('Value4')

¿Cómo se agrega PowerShell a la matriz Works?

Array no solo en PowerShell sino en todos los lenguajes de programación tiene una estructura similar y funciona en la estructura de indexación.

A continuación se muestra la declaración de matriz de muestra.

Código:

$arr = @()

Comprobemos su tipo.

Código:

$arr.GetType()

Salida:

Muestra BaseType System.Array y el Nombre como Objeto [] significa que podemos agregar varios objetos en la matriz.

Una vez que declaramos la matriz, si necesitamos agregar los valores a la matriz, podemos usar los dos métodos siguientes.

Código:

$arr += "Hello"
$arr += "PowerShell"
$arr

Salida:

Si marcamos aquí, todos se agregan en el índice específico incrementado en uno.

Código:

$arr[0]
$arr[1]

Salida:

No habrá ningún valor en el índice 2 porque aún no lo hemos agregado.

Código:

$arr[2]

Salida:

Otro método que podemos usar es el método Add(), pero no se aplica a la matriz de tamaño fijo.

Código:

$arr.Add('Azure')

Salida:

Las matrices de PowerShell tienen un tamaño fijo, por lo que al agregar o eliminar la matriz a la lista, destruye la matriz existente y crea una nueva, y la matriz con el tamaño fijo no permite el método Add() o Remove(); en su lugar, podemos usar los operadores += (Más igual) para agregar y -= (Menos igual) para las operaciones de agregar y eliminar.

Para comprobar si la matriz tiene un tamaño fijo.

Código:

$arr.IsFixedSize

Salida:

De manera similar, si tomamos cualquier salida de cmdlet y se almacenará como una matriz; y siempre será de un tamaño fijo.

Código:

$ser = Get-Service
$ser.GetType()
$ser.IsFixedSize

Salida:

Hay otro método con el que podemos agregar los valores a la matriz es usar ArrayList. ArrayList tiene un método de declaración diferente, como se muestra a continuación.

Código:

$arrlist = [System.Collections.ArrayList]@("Hello","PowerShell")
$arrlist

Salida:

Si verificamos el tipo de esta lista de matriz, es System.Object.

Código:

$arrlist.GetType()

Salida:

ArrayList permite usar el método Add() para agregar los valores a la lista de la matriz.

Código:

$arrlist.Add("Azure")

Podemos agregar la salida aquí porque ArrayList no tiene un tamaño fijo.

Código:

$arrlist.IsFixedSize

Salida:

Ejemplos de PowerShell para agregar a una matriz

A continuación se muestran ejemplos de cómo agregar PowerShell a una matriz:

Ejemplo #1

Agregar valores a la matriz.

En este ejemplo, estamos agregando un animal más, "Vaca", al Array $Animals.

Código:

$Animals = @()
$Animals = "Cat" , "Dog" , "Tiger"
$Animals += "Cow"
$Animals
C:\Temp\TestPS.ps1

Salida:

Ejemplo #2

Usando el operador de suma para fusionar dos matrices.

Aquí, vamos a fusionar las dos matrices en la matriz vacía usando el operador '+' (más).

Código:

$PetAnimals = @( "Cow" , "Dog" )
$WildAnimals = @( "Tiger" , "Lion" )
$Animals = @()
$Animals = $PetAnimals + $WildAnimals
$Animals

Salida:

Ejemplo #3

Usando Arraylist para agregar el valor.

En el siguiente ejemplo, estamos creando una lista de matrices y agregando los dos valores a la lista.

Código:

$arrlist = New-Object -TypeName System.Collections.ArrayList
$arrlist.Add("One")
$arrlist.Add("Two")
$arrlist

Salida:

Para agregar más valores, podemos usar el método de asignación Plus '+=' o el método Add() como se muestra a continuación.

Código:

$arrlist += "Three"
$arrlist += "Four"
$arrlist

Salida:

Ejemplo #4

Usando bucle para agregar los valores de la matriz.

En este ejemplo, tendremos la lista para ingresar los datos en la matriz y usaremos un bucle foreach para agregar los valores a la matriz.

Código:

$list = "One", "Two", "Three"
$arr = @()
foreach( $item in $list ){
$arr += $item
}
$arr

Salida:

Para agregar los valores a ArrayList usando el bucle foreach.

Código:

$list = "One", "Two", "Three"
$arrlist = New-Object -TypeName System.Collections.ArrayList
foreach( $item in $list ){
$arrlist.Add($item)
}
$arrlist

Salida:

Ejemplo #5

Usando el método de indexación para insertar los valores en la matriz.

Supongamos que tenemos la siguiente matriz.

Código:

$arr = @("One", "Two", "Three")

A continuación se muestra el índice de matriz para esta matriz declarada.

Código:

Write-Output "0th Index Value: $($arr[0])"
Write-Output "1st Index Value: $($arr[1])"
Write-Output "2nd Index Value: $($arr[2])"
Write-Output "3rd Index Value: $($arr[3])"

Salida:

El tercer índice está vacío porque aún no hemos declarado nada. Entonces, cuando intentamos agregarle el valor, obtenemos el siguiente error.

Código:

$arr[3] = "four"

O

Código:

$arr[3] += "four"

Salida:

Porque ese índice es desconocido para la matriz o algo similar con ArrayList. La solución para este método es asignar los valores nulos al índice inicialmente, pero esto hace que la matriz con el tamaño fijo cuente.

Código:

$count = 5
$arr = @()
for($i=0; $i -lt $count; $i++){
$arr += ""
}

Estamos declarando los 5 índices para la matriz y asignándole los valores en blanco, por lo que el tamaño de la matriz es 5 sin ningún valor, lo cual es su desventaja. Entonces ahora podemos asignarle valores.

Código:

$arr[0] = "One"
$arr[1] = "Two"
$arr[3] = "Four"
$arr

Salida:

Tenga en cuenta que los índices 2 y 4 están vacíos. Este método no es adecuado.

Ejemplo #6

Agregar una entrada de archivo host usando una matriz de cadenas.

Este ejemplo agregará la entrada al archivo host después de recuperar la salida en la matriz de cadenas.

Código:

$hostfile = Get-Content C:\Windows\System32\drivers\etc\hosts
$hostfile += "8.8.8.8 Google.com"
$hostfile | Set-Content C:\Windows\System32\drivers\etc\hosts -Force

Conclusión

Las operaciones de matriz son una parte esencial de PowerShell y, mientras trabajamos con cientos o miles de elementos, necesitamos agregar o eliminar algunos elementos de ArrayList o de una matriz y, en ese caso, podemos usar el método de operaciones de matriz para agregar el datos.

Artículos relacionados