Variabili e array PowerShell
Nel precedente articolo, denominato PowerShell Scripting Tutorial for Beginners, abbiamo esplorato come utilizzare la console PowerShell per eseguire script e imparato cosa sono i cmdlet, come ottenere le loro proprietà e come utilizzare le pipe per passare i dati da un cmdlet a un altro.
In questo articolo, passeremo alle variabili e agli array, incluso quello che sono e come possiamo crearli, rimuoverli e cambiarli.,i>Elenco variabili
- Array List
- Indice di un Array
- Array Multidimensionali
- Tipo array
- Aggiungere all’array
- lunghezza dell’Array
- Rimuovere elemento dall’array
- Array contiene
- Chiara matrice
- Stampa array
- Loop attraverso un array
PowerShell Variabili
Una variabile è un’unità di memoria in cui vengono memorizzati i valori., Una variabile in PowerShell inizia con ” $ ” (simbolo del dollaro) e il suo nome può contenere lettere, numeri e caratteri di sottolineatura. Per assegnare un valore a una variabile, usiamo l’operatore”=”. Per visualizzare il valore di una variabile, è sufficiente inserire la variabile.,
Se si aggiunge un numero in una stringa, il numero diventa automaticamente una stringa:
$var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3
Tipi di Variabili
La PowerShell tipo di variabile è impostata automaticamente in base al valore assegnato, ma è anche possibile assegnare il manuale del tipo:
$var1 = "Netwrix"
Per scoprire che tipo di una variabile, si usa il “GetType ()” parametro:
$var1 = "Netwrix"$var1.GetType().FullName
Come si può vedere, il nostro $var1 variabile di Sistema”.,Stringa” tipo.
Ecco le descrizioni di tutti i tipi di variabili PowerShell:
Probabilmente hai già capito che puoi scrivere sulla variabile non solo un valore definito e hai notato il sistema di classi.Oggetto nella tabella. A questa variabile è possibile scrivere l’output di qualsiasi cmdlet.
Ambito variabile
L’ambito variabile in PowerShell può essere locale o globale. Per impostazione predefinita, una variabile ha un ambito locale., Una variabile è limitata dal suo ambito corrente; ad esempio, una variabile locale può essere disponibile in una funzione o in uno script corrente, mentre una variabile globale è attiva per tutta la sessione PowerShell corrente. Per indicare una variabile globale, utilizzare il formato Global Global :variable = value, come illustrato nel seguente comando:
$Global:var4 = 12
PowerShell Variable Examples
Elenca variabili
Per elencare tutte le variabili disponibili correnti, eseguire il comando ls variable:*., Ecco un esempio dell’output:
Imposta variabile
Puoi creare una variabile semplicemente assegnandole un valore. Ad esempio, il comando var var4 = “variableexample” crea una variabile denominata var var4 e le assegna un valore stringa. Le virgolette doppie (” “) indicano che un valore stringa viene assegnato alla variabile.
Ottieni variabile
Questo è molto simile al comando list variable, semplicemente usando un altro cmdlet:
Get-Variable | Out-String
Stampa variabile
Puoi emettere una variabile a .txt, .file csv o HTML.
Per scrivere su un .,file txt, utilizzare il comando Out-File:
$var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt
Per esportare i dati in un .,”d2d13912ee”>
E scrivere in un file HTML, utilizzare il ConvertTo-comando in linguaggio Html:
$var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html
Per leggere un file che abbiamo esportato, possiamo utilizzare il cmdlet Get-Content:
Get-Content C:\scripts\processes.csv
Cancella la variabile
Per cancellare il contenuto di una variabile, utilizzare il Sereno-Variabile cmdlet:
Clear-Variable -name var6 #without $
Rimuovere la variabile
Per rimuovere completamente una variabile, utilizzare il cmdlet Remove-variable:
Remove-Variable -name var6 #without $
PowerShell Array
Un array è un tipo di una variabile., È un insieme di componenti (elementi dell’array) disposti in un certo ordine. Gli elementi dell’array sono numerati in sequenza e si accede a un elemento utilizzando il suo numero di indice.
Quando si creano array, tenere presente il comportamento predefinito di PowerShell. Se si crea un array con più elementi, PowerShell creerà un array,come si intende. Ad esempio, inserire alcuni numeri in un array e quindi controllare il tipo di dati della variabile:
$array1 = 1, 2, 3$array1.GetType()
Come puoi vedere, in questo caso, PowerShell ha creato un array (Sistema.Array).,
Tuttavia, se si mette solo un valore in una variabile, poi PowerShell non creare un array:
$array1 = 1$array1.GetType()
naturalmente, non si può sempre dire in anticipo come molti oggetti saranno ricevuti a seguito di esecuzione di un comando particolare, quindi è necessario avere il codice che ti trattano sempre come risultato un array.
Puoi farlo in molti modi. Ad esempio, è possibile utilizzare l’operatore”,”. Se una virgola viene utilizzata come operatore binario, viene creato un array normale; se viene utilizzato come operatore unario, l’array ha un solo elemento., Per esempio, ecco come si può ottenere una matrice costituita da un solo elemento:
$array1 = ,1$array1.GetType()
in Alternativa, è possibile specificare in modo esplicito il tipo di dati di una variabile:
]$array1 = 1$array1.GetType()
Infine, è anche possibile creare un array utilizzando una sottoespressione operatore “@”, che costituisce un array, anche se non oggetti specificati. È molto conveniente inizializzare una variabile come array e quindi aggiungere oggetti ad essa senza preoccuparsi del loro numero.,
$array3 = @()$array3.GetType()
Si noti che ogni elemento di un array ha il proprio tipo di dati e l’oggetto type consente di aggiungere qualsiasi valore all’array. Se necessario, è possibile limitare i membri dell’array a un tipo di dati specifico, quindi si sta creando un “array digitato”., Ad esempio, è possibile specificare che gli elementi dell’array deve essere valori interi:
]$array1 = 1$array1.GetType()
E così si definiscono i processi di sistema in quanto membri dell’array:
]$array1 = Get-Process$array1.GetType()
Array List
Se si modifica o la ricerca di un array di frequente, è possibile utilizzare la classe ArrayList, che è stato progettato per permette di aggiungere, rimuovere, e la ricerca di elementi:
$array3 = New-Object System.Collections.ArrayList
Array Index
Un indice dell’array è un valore, in genere un numero intero numerico utilizzato per identificare e di fare riferimento a un elemento dell’array., Gli indici di array iniziano da zero o uno, a seconda del linguaggio di programmazione. Gli array di Windows PowerShell sono basati su zero, quindi per fare riferimento al primo elemento dell’array var var3 (”elemento zero”), dovresti scrivere var var3 .
$var3 = "first", "second", "third"
Array multidimensionali
Gli array multidimensionali sono variabili che possono essere utilizzate per memorizzare informazioni in una tabella senza doverle scrivere in un database reale. Sembra una tabella hash, ma può memorizzare diversi tipi di informazioni, come stringhe e numeri interi., In effetti, puoi immaginare un array multidimensionale come una tabella con colonne e righe, in cui ogni cella ha il proprio indice all’interno di un ambiente PowerShell.
PowerShell Array Esempi
di Ordinare array
Se un array contiene un solo tipo di dati, è possibile ordinare i valori utilizzando il metodo di Ordinamento:
$array3 | Sort
Per ordinare un array con più di un tipo di dati, è necessario utilizzare il cmdlet Sort-Object.,
Aggiungere all’array
Prima di tutto, creare un array:
$array5 = "one", "two", "three", "four", "five"$array5.gettype()
Per modificare facilmente il nostro array, abbiamo bisogno di aggiungere alla arraylist di raccolta:
$ArrayList1 = $array5$ArrayList1.GetType()
Come si può vedere, il BaseType è cambiato e si può facilmente modificare il nostro array ora:
$ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1
Array lunghezza
Per restituire il numero di elementi dell’array, utilizzare il .,parametro lunghezza:
$array6 = 1,2,3,4,5,6echo $array6.Length
Rimuovi elemento da array
Per rimuovere un elemento, utilizzare il .Rimuovi comando., Di nuovo, è meglio usare un arraylist:
$ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1
Array contiene
Se si desidera controllare la presenza di eventuali elementi in un array contiene un valore particolare, di utilizzare il metodo Contains:
$array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)
Chiara matrice
Anche se la maggior parte delle operazioni di array in PowerShell sono relativamente facili da realizzare, non vi è alcun modo semplice per eliminare un array., Il modo più semplice per sbarazzarsi di un intero array è quello di assegnare la variabile $null al:
$array7 = $null$array7
Per verificare se la nostra matrice è nullo, eseguire il seguente script:
$array7 -eq $null
In PowerShell, se una variabile è null, non è possibile applicare qualsiasi metodi.
Print array
Per stampare un intero array, possiamo usare gli stessi metodi descritti per la stampa delle variabili.
Per scrivere su un .file txt, utilizzare il comando Out-File:
$var5 | Out-File C:\scripts\array.txt
Per esportare in a .,file csv, utilizzare il comando Export-Csv:
$var6 | Export-Csv -Path C:\scripts\array.csv
E scrivere in un file HTML, utilizzare il ConvertTo-comando in linguaggio Html:
$var6 | ConvertTo-Html > C:\scripts\processes.html
Loop attraverso un array
al fine di gestire ogni elemento in un array, uno dopo l’altro, abbiamo bisogno di fare un loop con il foreach operatore. Ad esempio, se dichiariamo un array di stringhe e vogliamo contare la lunghezza di ogni parola nell’array, dovremmo eseguire il seguente script:
$array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }
In questo articolo, abbiamo appreso delle variabili e dei loro tipi., Poi abbiamo esplorato un tipo di variabile — l’array— in dettaglio e imparato a giocare con esso. Con queste informazioni, si è pronti a tuffarsi in PowerShell ancora più in profondità.