In questa guida, dai un'occhiata a come utilizzare il ciclo foreach in PowerShell.
PowerShell Loops
In linea di principio, tutti i loop sono gli stessi. Tuttavia, per una migliore esperienza di codifica e leggibilità, vari linguaggi di programmazione implementano il concetto di loop in diversi modi. In effetti, la stessa lingua può supportare più tipi di loop, ognuno con la sua struttura unica.
PowerShell supporta diversi tipi di loop.
Come suggerisce il titolo dell'articolo, esamineremo il ciclo forea.
Forech Loop in PowerShell
Il codice della struttura del ciclo foreach è il seguente.
Foreach (articolo in raccolta)
Qui,
- Articolo: è un singolo valore o un oggetto che cambia con ogni iterazione.
- Collezione: può essere un array, un elenco di valori, raccolta o oggetti.
- : È il blocco del codice che esegue una volta soddisfatta la condizione di loop. Generalmente utilizza l'oggetto.
Foreach è uno dei loop PowerShell più comuni e semplici. Legge un'intera raccolta di articoli e per ogni articolo, esegue le operazioni definite.
Può essere utilizzato per numerose situazioni, ad esempio lavorando il contenuto di una directory.
Forech Loop in pratica
In questa sezione, daremo un'occhiata ad alcune implementazioni di esempio del ciclo foreach. Per eseguire i codici, ho già preparato uno script PowerShell vuoto.
$ nano fooch-loop.PS1 Lo shebang assomigliabbe a questo.
$ #!/Snap/Bin/PowerShell Segna il file di script PowerShell come eseguibile.
$ chmod +x foreach-loop.PS1 Forare attraverso un array di stringhe
Nella prima dimostrazione, implementeremo un ciclo foreach che legge da una serie di stringhe di nomi di città e stampare i nomi delle città sullo schermo.
Innanzitutto, dichiarare l'array di stringhe.
$ Cities = ("Tokyo", "New York", "Mosca", "Londra", "Sydney") Ora, implementa il ciclo foreach per lavorare con ogni elemento dell'array.
Foreach ($ City in $ Cities)
Echo $ City
Testa il codice eseguendo lo script.
$ ./Foreach-loop.PS1 Forare attraverso una raccolta di numeri
In questo esempio, implementeremo il ciclo foreach simile a quello precedente. La differenza è che invece passerà attraverso una serie di numeri.
Dichiarare l'array numerico.
$ numeri = (9,8,7,6,5,3,3,1) Ora, implementa il ciclo foreach per stampare i numeri uno per uno.
foreach ($ numero in $ numeri)
Echo $ Number
Mettiamo in azione il codice.
$ ./Foreach-loop.PS1 Forare tramite i file
È uno degli scenari più comuni per usare i loop di forea. Con l'aiuto di altri cmdlet, possiamo ottenere informazioni specifiche su determinate directory/file e utilizzare tali informazioni per eseguire le azioni necessarie.
In questo esempio, il ciclo foreach controllerà il contenuto di una directory/home/viktor/desktop/sample_dir e stampano il nome dei file.
foreach ($ file in get -childitem -recurse -path/home/viktor/desktop/sample_dir)
Echo $ File
Esegui il codice.
$ ./Foreach-loop.PS1 Qui, il cmdlet Get-childitem Ottieni gli articoli nella posizione descritti. La bandiera "-path" descrive quale directory esaminare. Se ci sono più livelli di sotto-directory, l'utilizzo di "-Recurse" otterrà tutti gli elementi del bambino in modo ricorsivo. Se vuoi ricorrere fino a una certa profondità, puoi anche usare il parametro "-depth". Dai un'occhiata di più su Get-childitem.
Possiamo anche perfezionare il codice per cercare solo estensioni specifiche dei file.
foreach ($ file in get -childitem -recurse -path/home/viktor/desktop/sample_dir/*.TXT)
Echo $ File
Forare su CSV
Un file CSV è un database di testo di valori, ogni valore separato da un delimitatore (virgola, per lo più). È una struttura semplice ma efficace per archiviare i dati strutturati in formato di testo. Il formato CSV viene utilizzato da varie applicazioni e motori di database per comodità e facilità d'uso.
Possiamo usare il ciclo foreach per lavorare con i singoli valori di un file CSV e agire di conseguenza. L'esempio seguente fa proprio questo.
$ valori = (get-content/home/viktor/campione.CSV) [0].diviso(",")
foreach ($ valore in $ valori)
Echo $ Value
Metodo foreach
Fino ad ora, abbiamo visto il ciclo foreach in azione, giusto? In PowerShell, appare anche come metodo foreach (). A partire da PowerShell V4, questo metodo esiste su array o raccolte di oggetti. Il metodo ha un blocco di script standard come parametro che contiene le azioni da intraprendere per ogni iterazione.
Diamo un'occhiata al metodo foreach () in azione. Innanzitutto, crea un array di esempio.
$ numeri = (2,4,8,16,32,64,128,256,512) Ora, possiamo chiamare il metodo e descrivere un semplice comando eco per iterazione.
$ numeri.Per ciascuno(
echo $ _
) Fooch-object
Il ciclo foreach può anche funzionare direttamente con gli oggetti. Per fare ciò, c'è un cmdlet dedicato chiamato Foreach-Object. Prende un oggetto come input e itera attraverso i suoi elementi.
Nel prossimo esempio, cercheremo una directory specifica per ".txt ”file e usa foreach-object per agire in base a ciascun elemento del risultato della ricerca.
$ nomi = get -childitem -recurse/home/viktor/desktop/sample_dir/*.TXT
$ nomi |
Foreach-object
echo $ _
Come puoi vedere, la struttura centrale di Forech-Object è abbastanza simile. L'unica differenza è che puoi passare l'oggetto usando le tubazioni.
Pensieri finali
Il ciclo foreach in PowerShell è un ciclo semplice ma efficace e potente. Può operare in base a oggetti, array o singoli elementi. Questa guida dimostra alcune delle implementazioni comuni del ciclo foreach.
Oltre al ciclo foreach, PowerShell supporta altri loop standard, come per un ciclo. Dai un'occhiata a questa guida per loop in PowerShell.
Felice calcolo!