PowerShell Forech Loop

PowerShell Forech Loop
Nella programmazione, un ciclo è un concetto semplice ma potente. Un ciclo è la ripetizione di una serie di istruzioni a meno che non venga soddisfatta una determinata condizione. Un ciclo adeguato può risparmiare tempo e aumentare l'efficienza di un codice. PowerShell, essendo un linguaggio di scripting, supporta varie forme di loop.

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.

  • per: un ciclo standard per eseguire determinate attività un numero specifico di volte.
  • mentre: continua a eseguire una serie di operazioni fino a quando le condizioni non vengono soddisfatte.
  • fare while: il ciclo continua a funzionare fintanto che la condizione è vera. Tuttavia, eseguirà sempre la prima volta.
  • Do-totil: funziona quasi in modo simile a quello. L'unica differenza è che eseguirà solo se la condizione data non è vera.
  • foreach-object: questo loop esegue un'operazione per ciascun oggetto di input.

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!