Búsqueda de sitios web

Matriz de cadenas de PowerShell | Guía para la matriz de cadenas de PowerShell


Definición de matriz de cadenas de PowerShell

La matriz de cadenas de PowerShell es la colección de objetos de cadena que son varias cadenas que residen en el mismo grupo, que se pueden declarar usando String [], @() o ArrayList y se pueden usar de varias maneras, como funciones, en el contenido del archivo. , como una variable y puede realizar múltiples operaciones en la matriz de cadenas como Dividir, Unir, recortar, ToUpper, ToLower, etc.

Sintaxis:

Se utilizan pocos métodos para declarar la matriz de cadenas de PowerShell.

Utilizando la declaración de variable como tipo de datos.

[String[]]

Se utiliza la declaración de matriz vacía.

$str = @()

Usando la lista de matrices.

[System.Collections.Arraylist]@()

¿Cómo crear una matriz de cadenas en PowerShell?

Como se muestra en la sintaxis anterior, podemos aprovechar esos métodos para crear la matriz de cadenas.
Para crear una matriz de cadenas, podemos declarar el nombre de la variable.

[String[]]$var = "PowerShell", "String", "Array"

Otra forma es crear usando @().

$strarry = @("PowerShell", "String", "Array")

Una forma más es crear un método de clase system.collections.arraylist como se muestra a continuación.

New-Object -TypeName System.Collections.ArrayList
$arrlist = [System.Collections.ArrayList]@("PowerShell", "String", "Array")
$arrlist

¿Cómo funciona una matriz de cadenas en PowerShell?

Cuando declaramos la cadena única, se puede representar como se muestra a continuación.

$str = "This is a PowerShell String"
$str

Salida:

Cuando verificamos su tipo de datos, es el tipo de cadena.

$str.GetType()

Puede comprobar que typeName es una cadena y BaseType es un sistema. Objeto.

Cuando agregamos las múltiples cadenas

$str = "This is a PowerShell String", "This is a second string"
$str

Salida:

Tipo de datos de esta variable.

$str.GetType()

El tipo se convierte en Objeto [] y el tipo base se convierte en System.Array. Object[] Array significa que puede aceptar múltiples cadenas.

Indexación de matrices de cadenas

Para verificar la longitud de la cadena que ingresamos,

$str.Length

Cuando declaras la matriz de cadenas, su longitud es 0.

[String[]]$strarry
$strarry.Length

O

$strarry = @()
$strarry.Length

Salida:

Una vez que agregamos los elementos, su longitud aumenta, lo que realmente funciona en la parte de indexación. Cada vez que agregamos elementos a la matriz de cadenas, su índice aumenta en 1 y comienza desde 0.

[String[]]$str = "First String", "Second String", "Third String"
Write-Output "0th Index: $($str[0])"
Write-Output "2nd Index: $($str[1])"

Salida:

El índice que no está presente no obtendrá ningún resultado ni generará una excepción como si el índice 4 no estuviera presente, por lo que $Str[4] no dará ningún resultado.

Método Here-String: no útil

El String también se puede declarar con el método Hare-String. Este método es un formato de texto accesible y podemos ingresar cualquier número de cadenas dentro del método Here-String, pero veamos si es solo una cadena o la matriz de cadenas.

$hashstr = @'
First String
Second String
Third String
'@

El $hashstr anterior proporciona las tres cadenas como salida.

Cuando comprobamos su longitud,

$hashstr.Length

Salida:

No proporciona la longitud 3, pero contar la palabra significa que here-string no puede considerarse una matriz de cadenas sino una cadena. Vea la prueba a continuación.

$hashstr.Count

Salida:

El recuento total es 1, lo que significa que se considera una sola cadena.

Métodos soportados por String array

Al realizar varias operaciones en la matriz de cadenas, siempre debemos verificar qué métodos son compatibles con la operación.

Una vez que hayamos creado una matriz de cadenas, podemos usar los siguientes comandos para encontrar los métodos.

$str | Get-Member -MemberType Method

Método Obtener contenido

El comando Get-Content convierte automáticamente el contenido de un archivo recuperado en una matriz del sistema. Por ejemplo, tenemos un nombre de archivo de texto Test.txt almacenado en la ubicación C:\temp.
Comprobaremos su tipo de datos,

$file = Get-Content C:\Temp\test.txt
$file.GetType()

Salida:

Ejemplos

Analicemos ejemplos de PowerShell Array of Strings.

Ejemplo #1: Agregar valor a la cadena de matriz.

Podemos agregar valores a la matriz de cadenas usando

$str = @("PowerShell", "Azure", "AZ Module")

Tenemos la matriz de cadenas anterior y para agregar el valor a la matriz de cadenas,

$str += "DevOps"
$str += "PowerCLI"
$str

Salida:

Ejemplo #2: Un caso cambiante de la matriz de cadenas usando PowerShell.

Puede cambiar la matriz de cadenas a mayúsculas o minúsculas, y para eso, necesita usar ToUpper() o ToLower()

$str = @("PowerShell", "Azure", "AZ Module")
$str.toUpper()
$str.toLower()

Salida:

Ejemplo #3: El método String ArrayList agrega valores a una matriz.

Cuando declaramos una matriz de cadenas simple, no podemos agregar ni eliminar los valores de la matriz usando Add() o Remove() porque se creó con un tamaño fijo. Vea el ejemplo a continuación.

$str = @("PowerShell", "Azure", "AZ Module")
$str.Add("PowerCLI")

Salida:

Para comprobar si la matriz de cadenas tiene un tamaño fijo o no,

$str.IsFixedSize

Salida:

Para resolver el problema anterior, en lugar de crear una matriz de tamaño fijo, podemos usar ArrayList de String.

New-Object -TypeName System.Collections.ArrayList
$arrlist = [System.Collections.Arraylist]@("PowerShell", "Azure")
$arrlist.Add("PowerCLI")
$arrlist.Add("DevOps")

Salida:

Para eliminar el valor de la lista de matrices,

$arrlist.Remove("Azure")
$arrlist

Salida:

Ejemplo #4: Verifique si la matriz de cadenas contiene una cadena específica.

Debemos usar el método Contiene() para verificar si la matriz de cadenas contiene alguna cadena específica.

$str = @("PowerShell", "Azure", "AZ Module", "DevOps", "AzCLI")
$str.Contains("Azure")
$str.Contains("Dev")

Salida:

Los caracteres comodín no admitirán este método.

$str.Contains("*Module*")
False

Ejemplo #5: Use el comando Seleccionar-Cadena para buscar desde la matriz de cadenas.

Cuando trabajamos con archivos en formato de matriz de cadenas y recuperamos la línea particular de ese archivo o las líneas coincidentes, podemos usar el método Select-String, como se muestra a continuación.

$file = Get-Content C:\Temp\test.txt
$file
$file | Select-String -Pattern "new"
$file | Select-String -Pattern "line"

Salida:

Conclusión

La matriz de cadenas de PowerShell es útil a diario en la vida del ingeniero de automatización. Necesitamos usarlo en el script para manipular los elementos, recuperar los datos específicos de la cadena, reemplazar los datos y almacenar la salida del comando en formato de texto.

Artículos relacionados