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"
$strSalida:
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"
$strSalida:
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.LengthO
$strarry = @()
$strarry.LengthSalida:
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.LengthSalida:
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.CountSalida:
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 MethodMé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"
$strSalida:
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.IsFixedSizeSalida:
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")
$arrlistSalida:
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*")
FalseEjemplo #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.





















