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





Argomenti della Guida