Le variabili sono la struttura di dati più semplice in qualsiasi tipo di codifica. Ma le singole variabili non sono sufficienti per la maggior parte degli scopi, specialmente quando si tratta di algoritmi più complessi.

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

Sommario

Matrici PowerShell 101

In parole povere, un array è solo una raccolta strutturata di variabili. L’idea è di eliminare il fastidio di tenere traccia di dozzine 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 usare virgolette doppie o singole per specificare una stringa.

$name=”Levin”

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

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

Alcune persone preferiscono eseguire esplicitamente il cast di una variabile in un array per evitare confusione, sebbene ciò non sia necessario. A tale scopo, metti i valori tra parentesi preceduti dal simbolo @.

$week=@(“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 un array

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 una matrice che contenga un intervallo di numeri, puoi utilizzare l’operatore di intervallo:

$cifre=(0..9)

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

$values ​​=@()

Gli array multipli possono anche essere annidati l’uno nell’altro, anche se questo tipo di utilizzo può creare confusione molto velocemente.

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

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

[int[]] $numbers=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 evitare semplici errori per gli array che lavorano 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 più 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 $numeri in $ variabile variabile. Nota che gli indici di array iniziano a contare da 0, quindi si accede al primo elemento con zero.

Se dovessimo produrre questo, ad esempio:

“$days[2 ]”

Otterremo mercoledì, non martedì.

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

$numbers[1]=0

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

$names +=“Johny”

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 l’accesso a più elementi dell’array. Inserendo questo, ad esempio, i primi cinque elementi di $days in $weekdays.

$weekdays=$days[0,1,2,3,4]

Esecuzione attraverso gli array

L’accesso manuale a particolari elementi di un array è positivo, ma se si desidera eseguire azioni sull’intero contenuto di un array, può diventare noioso. Un approccio più elegante consiste nell’usare un ciclo For.

I cicli For possono passare sistematicamente attraverso tutti gli elementi di un array, elaborando ogni valore in base alle istruzioni. Ecco come puoi costruire un ciclo del genere:

For ($i=0 ; $i-lt $days.Length ; $i++)
{

   $days[$i]
}

La funzione array.Length restituisce la dimensione dell’array, che è fondamentalmente il numero di elementi in esso contenuti. Questo può essere inserito in un parametro di espressione di prova 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 ($giorno in $giorni)
{

    $giorno
}

Questo ti fa risparmiare fatica di determinare la dimensione dell’array, lasciando che i dettagli vengano gestiti da PowerShell.

Quando utilizzare gli array di PowerShell

La principale fonte di bug in uno script complesso sono le variabili referenziate in modo errato. Ciò accade a causa della presenza di un gran numero di variabili con nome univoco, il che rende difficile ricordare il loro scopo.

La soluzione più semplice per questo problema consiste nell’usare ampiamente gli array. Tutte le variabili correlate in qualche modo possono essere assegnate a un singolo array e accessibili tramite i relativi numeri di indice.

Il caso d’uso principale di Microsoft PowerShell è 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 l’esecuzione automatica di attività sequenziali, semplificando notevolmente l’amministrazione del sistema.

Categories: IT Info