Variables y matrices de PowerShell
en el artículo anterior, denominado PowerShell Scripting Tutorial for Beginners, exploramos cómo usar la consola de PowerShell para ejecutar scripts y aprendimos qué son los cmdlets, cómo obtener sus propiedades y cómo usar canalizaciones para pasar datos de un cmdlet a otro.
en este artículo, pasaremos a variables y matrices, incluyendo lo que son y cómo podemos crearlas, eliminarlas y cambiarlas.,i>list variables
- lista de matrices
- Índice de matrices
- matrices multidimensionales
- Sort array
- Add to array
- array length
- remove item from array
- array contains
- clear array
- print array
- loop through an array
PowerShell variables
una variable es una unidad de memoria en la que se almacenan los valores., Una variable en PowerShell comienza con «dollar» (signo de dólar) y su nombre puede contener letras, números y guiones bajos. Para asignar un valor a una variable, utilizamos el operador»=». Para mostrar el valor de una variable, simplemente ingrese la variable.,
Si usted agrega un número a una cadena, el número se convierte automáticamente en una cadena:
$var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3
Tipos de Variables
El PowerShell tipo de variable se establece automáticamente en función del valor que se le asigne, pero también se puede asignar el tipo de forma manual:
$var1 = "Netwrix"
Para averiguar qué tipo de una variable, se utiliza el «GetType ()» parámetro:
$var1 = "Netwrix"$var1.GetType().FullName
Como podemos ver, nuestra $var1 variable tiene el Sistema».,String » type.
Aquí hay descripciones de todos los tipos de variables de PowerShell:
probablemente ya entendió que puede escribir en la variable no solo algún valor definido y notó el sistema de clases.Objeto en la tabla. En esta variable puede escribir el resultado de cualquier cmdlet.
ámbito de la Variable
el ámbito de la variable en PowerShell puede ser local o global. De forma predeterminada, una variable tiene un ámbito local., Una variable está limitada por su ámbito actual; por ejemplo, una variable local puede estar disponible en una función o script actual, mientras que una variable global está activa durante toda la sesión de PowerShell actual. Para indicar una variable global, utilice el formato Global Global: variable = value, como se ilustra en el siguiente comando:
$Global:var4 = 12
ejemplos de variables de PowerShell
list variables
para enumerar todas las variables disponibles actuales, ejecute el comando ls variable:*., Aquí hay un ejemplo de la salida:
establecer variable
puede crear una variable simplemente asignándole un valor. Por ejemplo, el comando var var4 = «variableexample» crea una variable llamada var var4 y le asigna un valor de cadena. Las comillas dobles (» «) indican que se está asignando un valor de cadena a la variable.
Get variable
esto es muy similar al comando list variable, simplemente usando otro cmdlet:
Get-Variable | Out-String
imprimir variable
puede generar una variable a .txt, .archivo csv o HTML.
para escribir a .,archivo txt, utilice el comando Out-File:
$var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt
para exportar datos a a .,»d2d13912ee»>
Y a escribir a un archivo HTML, el uso de la ConvertTo-comandos de Html:
$var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html
Para leer un archivo que hemos exportado, que use el cmdlet Get-Content:
Get-Content C:\scripts\processes.csv
Claro variable
Para borrar el contenido de una variable, utilice el cmdlet Clear-Variable:
Clear-Variable -name var6 #without $
Quitar variable
Para eliminar completamente una variable, utilice el Quitar Variable cmdlet:
Remove-Variable -name var6 #without $
PowerShell Matrices
Una matriz es un tipo de una variable., Es un conjunto de componentes (elementos de matriz) dispuestos en un orden determinado. Los elementos de la matriz se numeran secuencialmente, y se accede a un elemento utilizando su número de índice.
al crear matrices, tenga en cuenta el comportamiento predeterminado de PowerShell. Si crea una matriz con varios elementos, PowerShell creará una matriz como desee. Por ejemplo, coloque algunos números en una matriz y luego verifique el tipo de datos de la variable:
$array1 = 1, 2, 3$array1.GetType()
como puede ver, en este caso, PowerShell creó una matriz (System.Matriz).,
sin embargo, si pone solo un valor en una variable, PowerShell no creará una matriz:
$array1 = 1$array1.GetType()
por supuesto, no siempre puede decir de antemano cuántos objetos se recibirán como resultado de la ejecución de un comando en particular, por lo que necesita tener código que siempre tratará el resultado como una matriz.
Puede hacer esto de muchas maneras. Por ejemplo, puede utilizar el operador»,». Si se usa una coma como operador binario, entonces se crea una matriz normal; si se usa como operador unario, la matriz tiene solo un elemento., Por ejemplo, aquí es cómo podemos obtener una matriz que consiste en un elemento:
$array1 = ,1$array1.GetType()
alternativamente, puede especificar explícitamente el tipo de datos para una variable:
]$array1 = 1$array1.GetType()
finalmente, también puede crear una matriz utilizando el operador de subexpresión «@», que forma una matriz incluso si no se especifican objetos. Es muy conveniente inicializar una variable como una matriz, y luego agregar objetos a ella sin preocuparse por su número.,
$array3 = @()$array3.GetType()
tenga en cuenta que cada elemento de una matriz tiene su propio tipo de datos, y el objeto type le permite agregar cualquier valor a la matriz. Si es necesario, puede restringir los miembros del array a un tipo de datos específico – entonces está creando un «array escrito»., Por ejemplo, puede especificar que los elementos de la matriz deben ser valores enteros:
]$array1 = 1$array1.GetType()
y, por lo tanto, definimos los procesos del sistema como miembros de la matriz:
]$array1 = Get-Process$array1.GetType()
lista de matrices
o busque una matriz con frecuencia, puede usar la clase ArrayList, que está diseñada para permitirle agregar, eliminar y buscar fácilmente elementos en ella:
$array3 = New-Object System.Collections.ArrayList
array index
un índice en la matriz es un valor, normalmente un entero numérico utilizado para identificar y hacer referencia a un elemento de matriz., Los índices de matriz comienzan en cero o uno, dependiendo del lenguaje de programación. Las matrices de Windows PowerShell están basadas en cero, por lo que para referirse al primer elemento de la matriz var var3 («elemento cero»), escribiría $var3 .
$var3 = "first", "second", "third"
Arrays multidimensionales
los arrays multidimensionales son variables que se pueden utilizar para almacenar información en una tabla sin tener que escribirla en una base de datos real. Parece una tabla hash, pero puede almacenar diferentes tipos de información, como cadenas e enteros., De hecho, puede imaginar una matriz multidimensional como una tabla con columnas y filas, donde cada celda tiene su propio índice dentro de un entorno de PowerShell.
ejemplos de matriz de PowerShell
sort array
Si una matriz contiene solo un tipo de datos, puede ordenar los valores utilizando el método Sort:
$array3 | Sort
cmdlet.,
Add To array
primero, vamos a crear un array:
$array5 = "one", "two", "three", "four", "five"$array5.gettype()
para modificar fácilmente nuestro array, necesitamos agregarlo a la colección arraylist:
$ArrayList1 = $array5$ArrayList1.GetType()
como puede ver, el tipo Base ha cambiado y ahora podemos modificar fácilmente nuestro array:
$ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1
longitud del array
para devolver el número de elementos en la matriz, utilice el .,parámetro de longitud:
$array6 = 1,2,3,4,5,6echo $array6.Length
Eliminar elemento del array
para eliminar un elemento, utilice el .Quitar comando., De nuevo, es mejor usar una arraylist:
$ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1
Array contains
Si desea ver si alguno de los elementos en un array contiene un valor particular, use el método Contains:
$array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)
clear array
aunque la mayoría de las operaciones de array en PowerShell son relativamente fáciles de realizar, no hay una forma sencilla de eliminar un array., La forma más fácil de deshacerse de una matriz completa es asignarle la variable null null:
$array7 = $null$array7
para comprobar si nuestra matriz es nula, ejecute el siguiente script:
$array7 -eq $null
en PowerShell, si una variable es nula, no se puede aplicar ningún método a ella.
Print array
para imprimir una matriz completa, podemos utilizar los mismos métodos descritos para imprimir variables.
para escribir a .archivo txt, utilice el comando Out-File:
$var5 | Out-File C:\scripts\array.txt
para exportar a a .,archivo csv, use el comando Export-Csv:
$var6 | Export-Csv -Path C:\scripts\array.csv
y para escribir en un archivo HTML, use el comando ConvertTo-Html:
$var6 | ConvertTo-Html > C:\scripts\processes.html
bucle a través de un array
para manejar cada elemento en un array uno tras otro, necesitamos hacer un bucle usando el operador foreach. Por ejemplo, si declaramos una matriz de cadenas y queremos contar la longitud de cada palabra en la matriz, debemos ejecutar el siguiente script:
$array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }
en este artículo, aprendimos sobre las variables y sus tipos., Luego exploramos un tipo de variable, el array, en detalle y aprendimos a jugar con él. Con esta información, está listo para sumergirse aún más en PowerShell.