Guida per Principianti sugli Array negli Script Batch

Ciao a tutti, futuri programmatori! Oggi esploreremo il mondo emozionante degli array negli script Batch. Non preoccupatevi se non avete mai scritto una riga di codice prima - sarò il vostro guida amichevole in questo viaggio. Alla fine di questa guida, manipolerete gli array come un professionista!

Batch Script - Arrays

Cos'è un Array?

Prima di immergerci, capiamo cos'è un array. Immagina di avere una scatola di matite colorate. Ogni matita è di un colore diverso, ma sono tutte conservate in una scatola. Un array è come quella scatola - è un contenitore che può contenere più elementi (chiamati elementi) dello stesso tipo.

Creare un Array

Negli script Batch, creare un array è semplice. Utilizziamo il comando set per definire il nostro array. Creiamo un array di frutti!

@echo off
set frutti[0]=Mela
set frutti[1]=Banana
set frutti[2]=Ciliegio
set frutti[3]=Dattero
set frutti[4]=Sambuco

In questo esempio, abbiamo creato un array chiamato frutti con cinque elementi. Ogni elemento è assegnato a un numero di indice, partendo da 0.

Consiglio professionale: Iniziate sempre l'indice del vostro array da 0. È una convenzione seguita in gran parte delle lingue di programmazione!

Accedere agli Array

Ora che abbiamo il nostro cesto di frutta (array), come scegliamo un frutto specifico? Utilizziamo il numero di indice!

@echo off
set frutti[0]=Mela
set frutti[1]=Banana
set frutti[2]=Ciliegio

echo Il primo frutto è: !frutti[0]!
echo Il secondo frutto è: !frutti[1]!
echo Il terzo frutto è: !frutti[2]!

Quando eseguite questo script, vedrete:

Il primo frutto è: Mela
Il secondo frutto è: Banana
Il terzo frutto è: Ciliegio

Notate le esclamazioni (!) attorno alle referenze degli array. Queste sono fondamentali! Dicono a Batch di utilizzare l'espansione differita, che è necessaria per accedere agli elementi dell'array.

Modificare un Array

Che faremo se decideremo che preferiamo il Mirtillo nero alla Banana? Nessun problema! Possiamo facilmente modificare il nostro array:

@echo off
setlocal enabledelayedexpansion

set frutti[0]=Mela
set frutti[1]=Banana
set frutti[2]=Ciliegio

echo Prima: Il secondo frutto è !frutti[1]!

set frutti[1]=Mirtillo nero

echo Dopo: Il secondo frutto è !frutti[1]!

Questo script outputs:

Prima: Il secondo frutto è Banana
Dopo: Il secondo frutto è Mirtillo nero

Vedete quanto è stato facile? Abbiamo solo sostituito il secondo elemento del nostro array!

Iterare su un Array

Ora, cosa faremo se vogliamo vedere tutti i frutti nel nostro cesto? Possiamo utilizzare un ciclo for per iterare sul nostro array:

@echo off
setlocal enabledelayedexpansion

set frutti[0]=Mela
set frutti[1]=Mirtillo nero
set frutti[2]=Ciliegio
set frutti[3]=Dattero
set frutti[4]=Sambuco

for /L %%i in (0,1,4) do (
echo Frutto %%i è: !frutti[%%i]!
)

Questo script outputs:

Frutto 0 è: Mela
Frutto 1 è: Mirtillo nero
Frutto 2 è: Ciliegio
Frutto 3 è: Dattero
Frutto 4 è: Sambuco

Ecco cosa sta succedendo:

  • /L dice al ciclo di iterare su una gamma di numeri
  • %%i è la nostra variabile di ciclo
  • (0,1,4) significa iniziare da 0, incrementare di 1, e fermarsi a 4

Lunghezza di un Array

A differenza di alcune altre lingue di programmazione, Batch non ha un modo integrato per ottenere la lunghezza di un array. Ma non preoccupatevi! Possiamo creare una piccola soluzione alternativa:

@echo off
setlocal enabledelayedexpansion

set frutti[0]=Mela
set frutti[1]=Mirtillo nero
set frutti[2]=Ciliegio
set frutti[3]=Dattero
set frutti[4]=Sambuco

set "x=0"
:SymLoop
if defined frutti[%x%] (
set /a "x+=1"
GOTO :SymLoop
)
echo L'array frutti ha %x% elementi.

Questo script outputs:

L'array frutti ha 5 elementi.

Quello che stiamo facendo qui è contare quanti elementi sono definiti fino a quando non troviamo un elemento non definito. È come contare quante matite ci sono nella scatola fino a raggiungere una slot vuota!

Creare Strutture negli Array

Ora, diventiamo un po' più avanzati. Possiamo utilizzare gli array per creare strutture più complesse. Creiamo un "database" di frutti con i loro colori!

@echo off
setlocal enabledelayedexpansion

set "frutti[0].nome=Mela"
set "frutti[0].colore=Rosso"
set "frutti[1].nome=Banana"
set "frutti[1].colore=Giallo"
set "frutti[2].nome=Mirtilli"
set "frutti[2].colore=Blu"

for /L %%i in (0,1,2) do (
echo Frutto %%i è un !frutti[%%i].colore! !frutti[%%i].nome!
)

Questo outputs:

Frutto 0 è un Rosso Mela
Frutto 1 è un Giallo Banana
Frutto 2 è un Blu Mirtilli

Abbiamo creato una struttura in cui ogni frutto ha un nome e un colore. È come avere una scatola di matite più dettagliata, dove ogni matita ha un colore e un nome specifico!

Conclusione

Congratulazioni! Avete appena fatto i vostri primi passi nel mondo degli array negli script Batch. Abbiamo coperto la creazione di array, l'accesso e la modifica degli elementi, l'iterazione sugli array, la ricerca della lunghezza e persino la creazione di strutture più complesse.

Ricordate, la pratica fa la perfezione. Provate a creare i vostri array, magari con i vostri libri o film preferiti. Sperimentate con diversi modi per manipolare e visualizzare i dati. Prima di sapere, utilizzerete gli array per organizzare e gestire tutte le sorti di informazioni nei vostri script!

Buon coding, e possa i vostri array sempre essere fecondi! ???

Metodo Descrizione
Creare un Array Usa set nomearray[indice]=valore
Accedere agli Elementi dell'Array Usa !nomearray[indice]! con espansione differita
Modificare un Array Reassegna il valore con set nomearray[indice]=nuovovalore
Iterare su un Array Usa un ciclo for /L
Trovare la Lunghezza di un Array Usa un ciclo per contare gli elementi definiti
Creare Strutture Usa la notazione a punto: nomearray[indice].proprietà=valore

Credits: Image by storyset