Array di PowerShell: come crearli e utilizzarli


Le variabili sono la struttura dati più basilare in qualsiasi tipo di codifica. Ma le singole variabili difficilmente sono sufficienti per la maggior parte degli scopi, soprattutto quando si ha a che fare con algoritmi più complessi.

È qui che entrano in gioco gli array. Che si tratti di C++ o Pitone, gli array sono presenti in ogni linguaggio di programmazione in qualche forma. Ma che dire di Windows PowerShell? Come funzionano gli array PowerShell? Come li usate? Qual è la loro sintassi? Scopriamolo.

Array PowerShell 101

In parole povere, un array è semplicemente una raccolta strutturata di variabili. L'idea è di eliminare il fastidio di tenere traccia di decine di nomi comprimendo le variabili correlate in un insieme numerato.

In PowerShell, puoi creare una variabile anteponendo il simbolo $ al nome di una variabile. Ad esempio:

$prime = 13

La variabile può contenere qualsiasi tipo di dati, dai numeri alle stringhe. Devi solo utilizzare virgolette doppie o singole per specificare una stringa.

$name = “Levin”

Ora, per creare un nuovo array, è sufficiente assegnare più valori alla stessa variabile, separati da virgole. In questo modo:

$week = "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica"

Alcune persone preferiscono inserire esplicitamente una variabile in un array per evitare confusione, sebbene ciò non sia necessario. Per fare ciò, metti i valori tra parentesi preceduti dal simbolo @.

$settimana = @("Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica")

Questo di solito è utile quando si tenta di inserire l'output di altri comandi in un array, dove non è possibile scriverli manualmente nel formato corretto.

Creazione di una matrice

Abbiamo già visto il metodo più comune per creare un array. Ma a seconda della situazione, ci sono altri modi che potrebbero essere più adatti. Ad esempio, se desideri creare un array che contenga un intervallo di numeri, puoi utilizzare l'operatore di intervallo:

$cifre = (0..9)

Questo creerà un array di tutte e dieci le cifre da zero a nove. Puoi anche inizializzare un array vuoto, nel caso in cui desideri solo un posto dove memorizzare i valori in seguito..

$valori = @()

È anche possibile annidare più array uno nell'altro, anche se questo tipo di utilizzo può creare confusione molto rapidamente.

$coordinate = @(
    (5, 10, 23),
    (11, 7, 16)
)

Per impostazione predefinita, un array può memorizzare qualsiasi tipo di variabile, siano essi numeri, stringhe o un mix di entrambi. Ma puoi definire esplicitamente un tipo nel caso in cui desideri limitare i valori inseriti al suo interno. Ad esempio:

[int[]] $numeri = 2,3,4,5

In questo modo, l'array può contenere solo numeri interi. Il tentativo di assegnargli qualsiasi altro tipo di valore restituirà un errore. Questo può essere utile per prevenire semplici errori per gli array che funzionano esclusivamente con valori numerici, poiché l'inserimento di una stringa in una variabile da utilizzare nei calcoli creerà problemi.

Accesso agli array

Finora abbiamo visto diversi metodi per creare array contenenti vari tipi di dati. Ma come si accede a questi dati?

Gli array di PowerShell utilizzano lo stesso formato utilizzato da altri linguaggi di programmazione. È possibile accedere a ciascuna variabile dell'array tramite il relativo numero di indice. Ad esempio:

$var = $numeri[5]

Questo copierà il valore memorizzato nell'indice cinque dell'array $numbersnella variabile $var. Tieni presente che gli indici dell'array iniziano a contare da 0, quindi si accede al primo elemento con zero.

Se dovessimo produrre questo, ad esempio:

"$days[2]"

Avremo mercoledì, non martedì.

Puoi utilizzare lo stesso metodo anche per modificare questi valori. Ad esempio, il comando seguente modificherà il secondo elemento dell'array in zero:

$numeri[1] = 0

Puoi anche aggiungere più elementi a un array esistente invece di modificare i valori delle voci correnti semplicemente aggiungendoli come un'espressione aritmetica.

$nomi += “Giovanni”

Questo metodo può essere utilizzato anche per aggiungere più voci contemporaneamente o anche interi array.

$names += “Charlie, Liam, Teresa”

$nomi += $cognomi

Il metodo separato da virgole vale anche per accedere a più elementi dell'array. Inserendo questo, ad esempio, verranno memorizzati i primi cinque elementi di $daysin $weekdays..

$giorni feriali = $giorni[0,1,2,3,4]

Iterazione attraverso gli array

Accedere manualmente a particolari elementi di un array è una buona cosa, ma se vuoi eseguire azioni sull'intero contenuto di un array, può diventare noioso. Un approccio più elegante consiste nell'utilizzare un ciclo For.

I cicli For possono esaminare sistematicamente tutti gli elementi di un array, elaborando ciascun valore secondo le istruzioni. Ecco come puoi costruire un ciclo del genere:

Per ($i = 0 ; $i -lt $giorni.Lunghezza ; $i++)

    $giorni[$i]
}

La funzione array.Length restituisce la dimensione dell'array, che sostanzialmente è il numero di elementi in esso contenuti. Questo può essere collegato al parametro dell'espressione di test del ciclo For per eseguire un'iterazione completa su tutti gli elementi.

Il ciclo Foreach e il ciclo Foreach-object possono fare lo stesso con uno script PowerShell ancora più snello.

Foreach ($day in $days)
<

    $day
}

Ciò ti risparmia lo sforzo di determinare la dimensione dell'array, lasciando che i dettagli siano gestiti da PowerShell.

Quando dovresti utilizzare gli array di PowerShell

La principale fonte di bug in uno script complesso sono le variabili con riferimenti errati. Ciò accade a causa della presenza di un gran numero di variabili con nomi univoci, il che rende difficile ricordarne lo scopo.

La soluzione più semplice a questo problema è utilizzare estensivamente gli array. Tutte le variabili correlate in qualche modo possono essere assegnate a un singolo array e accessibili tramite i loro numeri di indice.

Microsoft PowerShell il caso d'uso principale è l'automazione e gli array svolgono un ruolo fondamentale in questo. Gli oggetti restituiti dai cmdlet di PowerShell possono essere archiviati in matrici e ripetuti. Ciò consente di eseguire automaticamente attività sequenziali, semplificando notevolmente l'amministrazione del sistema.

.

Post correlati:


1.06.2022