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