ARGOMENTO
about_Script_Blocks
DESCRIZIONE BREVE
Definisce un blocco di script e illustra come utilizzare i
blocchi di script nel linguaggio di programmazione di Windows
PowerShell.
DESCRIZIONE DETTAGLIATA
Nel linguaggio di programmazione di Windows PowerShell, un blocco
di script è un insieme di istruzioni o espressioni che possono essere
utilizzate come singola unità. Un blocco di script può accettare
argomenti e valori restituiti.
Sintatticamente, un blocco di script è un elenco di istruzioni
racchiuse tra parentesi graffe, come mostrato nella sintassi seguente:
{<elenco istruzioni>}
Un blocco di script restituisce l'output di tutti i comandi nel
blocco di script, come un solo oggetto o come una matrice.
Come le funzioni, un blocco di script può includere parametri.
Utilizzare la parola chiave Param per assegnare parametri
denominati, come mostrato nella sintassi seguente:
{
param ([type]$parameter1 [,[type]$parameter2])
<elenco istruzioni>
}
A differenza di una funzione, in un blocco di script non è possibile
specificare parametri fuori dalle parentesi graffe.
Come le funzioni, i blocchi di script possono includere le parole
chiave DynamicParam, Begin, Process ed End. Per ulteriori
informazioni, vedere about_Functions e about_Functions_Advanced.
Utilizzo dei blocchi di script
Un blocco di script è un'istanza di un tipo Microsoft .NET Framework
(System.Management.Automation.ScriptBlock). I comandi possono avere
valori di parametri dei blocchi di script. Ad esempio, il cmdlet
Invoke-Command dispone di un parametro ScriptBlock che accetta un
valore del blocco di script, come mostrato in questo esempio:
C:\PS> invoke-command -scriptblock { get-process }
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
999 28 39100 45020 262 15.88 1844 communicator
721 28 32696 36536 222 20.84 4028 explorer
. . .
Il blocco di script utilizzato come valore può essere più
complesso, come mostrato nell'esempio seguente:
C:\PS> invoke-command -scriptblock { param ($uu = "Parametro");
"$uu assegnato." }
Parametro assegnato.
Il blocco di script block nell'esempio precedente utilizza la parola
chiave Param per creare un parametro con un valore predefinito.
Nell'esempio seguente viene utilizzato il parametro Args del cmdlet
Invoke-Command per assegnare un valore diverso al parametro:
C:\PS> invoke-command -scriptblock {param ($uu = "Parametro");
"$uu assegnato."} -args "Altro valore" Altro valore
assegnato.
È possibile assegnare un blocco di script a una variabile, come
mostrato nell'esempio seguente:
C:\PS> $a = {param ($uu = "Parametro"); "$uu assegnato."}
È possibile utilizzare la variabile con un cmdlet quale
Invoke-Command, come mostrato nell'esempio seguente:
C:\PS> invoke-command -scriptblock $a -args "Altro valore"
Altro valore assegnato.
È possibile eseguire un blocco di script assegnato a una
variabile tramite l'operatore di chiamata (&), come mostrato
nell'esempio seguente:
C:\PS> &$a
Parametro assegnato.
È anche possibile fornire un parametro al blocco di script,
come mostrato nell'esempio seguente:
C:\PS> &$a "Altro valore"
Altro valore assegnato.
Se si desidera assegnare il valore creato da un blocco di
script a una variabile, utilizzare l'operatore di chiamata per
eseguire direttamente il blocco di script, come mostrato
nell'esempio seguente:
C:\PS> $a = &{param ($uu = "Parametro"); "$uu assegnato."}
C:\PS> $a
Parametro assegnato.
Per ulteriori informazioni sull'operatore di chiamata, vedere
about_Operators.
VEDERE ANCHE
about_Functions
about_Functions_Advanced
about_Operators