Usare gli elenchi di matrici negli script di Windows PowerShell

Completato

All'interno degli script è necessario fare riferimento ai dati inseriti nelle matrici. È possibile accedere a tutti gli elementi nella matrice contemporaneamente o singolarmente. Per visualizzare tutti gli elementi in una matrice, si immette il nome della variabile e quindi si preme INVIO, esattamente come per una variabile con un singolo valore.

È possibile fare riferimento a singoli elementi in una matrice in base al numero di indice. Quando si crea una matrice, a ogni elemento viene assegnato un numero di indice a partire da 0. Il primo elemento inserito nella matrice è quindi l'elemento 0, il secondo elemento nella matrice è l'elemento 1 e così via. Per visualizzare un elemento specifico, posizionare il numero di indice tra parentesi dopo il nome della variabile. Nell'esempio seguente viene visualizzato il primo elemento in una matrice archiviata nella variabile $users:

$users[0] 

È anche possibile aggiungere un nuovo elemento a una matrice. Nell'esempio seguente viene aggiunto l'account utente archiviato in $user1 alla matrice $users:

$users = $users + $user1

In alternativa, quando si aggiungono gli elementi a una matrice, è possibile usare la notazione abbreviata seguente:

$users += $user1

Per identificare le operazioni che è possibile eseguire con il contenuto in una matrice, usare il cmdlet Get-Member. Inviare pipe del contenuto della matrice a Get-Member; i risultati restituiti identificano le proprietà e i metodi che è possibile usare per gli elementi nella matrice. Ad esempio:

$files | Get-Member

Nota

Quando si inviano pipe di una matrice contenente tipi di dati misti a Get-Member, i risultati vengono restituiti per ogni tipo di dati. Questo è un modo utile anche per determinare quali tipi di dati si trovano nella matrice.

Per esaminare le proprietà e i metodi disponibili per una matrice anziché gli elementi all'interno della matrice, usare la sintassi seguente:

Get-Member -InputObject $files

Uso degli elenchi di matrici

Il tipo predefinito di matrice che Windows PowerShell crea è una matrice a dimensione fissa. Ciò significa che quando si aggiunge un elemento alla matrice, la matrice viene effettivamente ricreata con l'elemento aggiuntivo. Quando si usano matrici relativamente piccole, questo non è un problema. Tuttavia, se si aggiungono migliaia di elementi a una matrice, uno alla volta, l'operazione di ricreare una matrice ogni volta ha un impatto negativo sulle prestazioni. L'altro problema quando si usano matrici a dimensione fissa è la rimozione degli elementi. Non esiste un metodo semplice per rimuovere un elemento da una matrice a dimensione fissa.

Per risolvere i limiti delle matrici, è possibile usare un elenco di matrici. Un elenco di matrici funziona in modo simile a una matrice, ad eccezione del fatto che non ha una dimensione fissa. Ciò significa che è possibile usare i metodi per aggiungere e rimuovere gli elementi.

Per creare un elenco di matrici quando si assegnano i valori, usare la sintassi seguente:

[System.Collections.ArrayList]$computers = "LON-DC1","LON-SVR1","LON-CL1"

Per creare un elenco di matrici vuoto e pronto per aggiungere elementi, usare la sintassi seguente:

$computers=New-Object System.Collections.ArrayList

Quando si usa un elenco di matrici, è possibile usare i metodi per aggiungere e rimuovere gli elementi. Tuttavia, questi metodi avranno esito negativo quando si tenta di usarli in una matrice a dimensione fissa. Ad esempio:

$computers.Add("LON-SRV2")
$computers.Remove("LON-CL1")

Nota

Quando si rimuove un elemento da un elenco di matrici, se sono presenti più elementi corrispondenti, viene rimossa solo la prima istanza.

Se si vuole rimuovere un elemento da un elenco di matrici basato sul numero di indice, usare il metodo RemoveAt(). Ad esempio:

$computers.RemoveAt(1)