Array di PowerShell: come crearli e usarli

Le variabili sono la struttura dati più basilare in qualsiasi tipo di codifica(any type of coding) . 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 forma. Ma che dire di Windows PowerShell ? Come funzionano gli array di PowerShell ? Come li usi? Qual è la loro sintassi? Scopriamolo.

Array di PowerShell 101

In parole povere(Simply) , 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. Per 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. Come questo:

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

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

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

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

$digits = (0..9)

Questo creerà una matrice 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 = @()

Più(Multiple) array 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, numeri, stringhe o una combinazione di entrambi. Ma puoi definire esplicitamente un tipo nel caso in cui desideri limitare i valori inseriti. Per 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'immissione 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 fa ad accedere a questi dati?

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

$var = $numbers[5]

Questo copierà il valore memorizzato nell'indice cinque dell'array $numbers nella variabile $varSi noti che gli indici di matrice iniziano a contare da 0, quindi si accede al primo elemento con zero.

Se dovessimo produrre questo, ad esempio:

“$days[2]”

Arriveremo mercoledì, non martedì.

È possibile utilizzare 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 più 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”

$names += $surnames

Il metodo separato da virgole vale anche per l'accesso a più elementi dell'array. Immettendo questo, ad esempio, vengono archiviati i primi cinque elementi di $days in $weekdays .

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

Iterazione 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 esaminare sistematicamente 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.(PowerShell)

Foreach ($day in $days){
    $day}

Ciò consente di risparmiare lo sforzo di determinare le dimensioni dell'array, lasciando che i dettagli vengano gestiti da PowerShell .

Quando dovresti usare gli array di PowerShell(PowerShell Arrays)

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'utilizzare ampiamente gli array. Tutte le variabili correlate in qualche modo possono essere assegnate a un singolo array e accessibili tramite i loro numeri di indice.

Il principale caso d'uso di Microsoft PowerShell(Microsoft PowerShell’s) è 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.



About the author

Sono un MVP di Windows e lavoro con Windows dal 2007. La mia esperienza include sviluppo software, hardware e suoni e app di Windows. Sono sempre alla ricerca dei modi migliori per migliorare l'esperienza dell'utente nel mio lavoro, quindi se hai bisogno di aiuto per progettare o sviluppare un'applicazione software, posso sicuramente offrire i miei servizi.



Related posts