Buongiorno a tutti e benvenuti nuovamente nel mio blog!
Capita spesso, in programmazione e così anche negli script,
di creare delle funzioni generiche che ci piacerebbe riutilizzare.
Nei linguaggi di scripting, tuttavia, non sempre è intuitivo
capire come “includere” le definizioni di funzioni: ogni linguaggio ha il suo “dialetto”…
Ecco, in breve, come sfruttare questa buona pratica di programmazione,
il riutilizzo del codice, con powershell.
Supponiamo, ad esempio, di aver scritto questa funzione
dentro un file “FUNZIONI.ps1”:
function
echoMyName($user){
write-host "Ciao, $($user.Name), questo e' il tuo nome e
quest'altro e' il tuo ufficio: $($user.Office) "
}
… e di volerla riutilizzare per la nostra amministrazione
via powershell o in nuovi script, per riutilizzo del codice (ottima pratica).
Quindi? Ecco qui di seguito alcuni trick per farlo:
Richiamare una function dal file da linea di comando shell
È presto fatto, basta ricordarsi una notazione un po’
particolare. Dobbiamo cominciare con una & e una parentesi graffa, dentro
quest’ultima un punto prima del percorso del file che contiene la funzione,
quindi il percorso, un punto e virgola (che separa il comando successivo) e
·
La & serve per indicare a powershell che
stiamo per eseguire un comando.
·
La parentesi graffa serve per “racchiudere” i
comandi in un unico “set di comandi”.
·
Il punto serve per indicare che vogliamo
“eseguire” il file PS1 (che conterrà solo definizioni di funzione, quindi non
avrà alcun output).
Mi raccomando lo spazio tra il primo punto e il percorso del file
Mi raccomando lo spazio tra il primo punto e il percorso del file
Come di seguito:
& {
. “.\Funzioni.ps1”; echoMyName((get-aduser DiegoC))}
Come usare una funzione powershell scritta in un file, su di un loop
Per utilizzare una funzione powershell da un file, però
sugli oggetti di un loop, magari i risultati in una collection derivanti da un comando
che abbiamo lanciato.
Per farlo è sufficiente includere i comandi dentro le graffe
all’interno di quelle del foreach o del for, così:
get-Aduser -Filter
“*” |
foreach {
. “.\Funzioni.ps1”; echoMyName($_) }
Come includere un file .ps1 che contiene delle funzioni
Per includere ed usare, in uno script powershell, delle
funzioni che avete definito in UN ALTRO file…
È sufficiente usare questa notazione:
. ".\FUNZIONI.ps1"
Da quel momento in avanti potrete usare le funzioni che
avete scritto
Bene, spero di aver solleticato anche oggi un po’ la vostra
fantasia…
Happy Scripting a tutti!
Nessun commento:
Posta un commento
I commenti sono soggetti a moderazione, prima di essere pubblicati.
Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.