RUBRIQUE
    about_Script_Blocks

DESCRIPTION COURTE
    Définit un bloc de script et explique comment utiliser des blocs 
    de script en langage de programmation Windows PowerShell.


DESCRIPTION LONGUE
    En langage de programmation Windows PowerShell, un bloc de script 
    est une collection d'instructions ou expressions qui peuvent être 
    utilisées comme une unité unique. Un bloc de script peut accepter 
    des arguments et retourner des valeurs.

    Sur le plan de la syntaxe, un bloc de script est une liste 
    d'instructions entre accolades, comme illustré dans la syntaxe 
    suivante :


        {<liste d'instructions>}


    Un bloc de script retourne la sortie de toutes les commandes dans 
    le bloc de script, sous la forme d'un objet unique ou d'un tableau.

    Comme les fonctions, un bloc de script peut inclure des 
    paramètres. Utilisez le mot clé Param pour attribuer des 
    paramètres nommés, comme illustré dans la syntaxe suivante : 


        {
            param ([type]$parameter1 [,[type]$parameter2]) 
            <liste d'instructions>
        }


    Dans un bloc de script, contrairement à une fonction, vous ne 
    pouvez pas spécifier de paramètres à l'extérieur des accolades.


    Comme les fonctions, les blocs de script peuvent inclure les mots clés 
    DynamicParam, Begin, Process et End. Pour plus d'informations, consultez 
    about_Functions et about_Functions_Advanced.


  Utilisation de blocs de script

      Un bloc de script est une instance d'un type Microsoft .NET 
      Framework (System.Management.Automation.ScriptBlock). Les commandes 
      peuvent avoir des valeurs de paramètre de bloc de script. Par 
      exemple, l'applet de commande Invoke-Command a un paramètre 
      ScriptBlock qui prend une valeur de bloc de script, comme 
      illustré dans cet exemple :


          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   
          . . .           


      Le bloc de script qui est utilisé comme valeur peut être plus 
      complexe, comme illustré dans l'exemple suivant :


          C:\PS> invoke-command -scriptblock { param ($uu = "Paramètre"); 
              "$uu attribué." } 
          Paramètre attribué.


      Le bloc de script dans l'exemple précédent utilise le mot clé 
      Param pour créer un paramètre qui a une valeur par défaut. 
      L'exemple suivant utilise le paramètre Args de l'applet de commande 
      Invoke-Command pour attribuer une valeur différente au paramètre :


          C:\PS> invoke-command -scriptblock {param ($uu = "Paramètre"); 
              "$uu attribué."} -args "Autre valeur" 
          Autre valeur attribuée.


      Vous pouvez attribuer un bloc de script à une variable, comme 
      illustré dans l'exemple suivant :


          C:\PS> $a = {param ($uu = "Paramètre"); "$uu attribué."}


      Vous pouvez utiliser la variable avec une applet de commande, 
      par exemple Invoke-Command, comme illustré dans l'exemple suivant :


          C:\PS> invoke-command -scriptblock $a -args "Autre valeur"
          Autre valeur attribuée.


      Vous pouvez exécuter un bloc de script attribué à une variable 
      à l'aide de l'opérateur d'appel (&), comme illustré dans l'exemple 
      suivant :


          C:\PS> &$a 
          Paramètre attribué.


      Vous pouvez également fournir un paramètre au bloc de script, comme 
      illustré dans l'exemple suivant :


          C:\PS> &$a "Autre valeur"
          Autre valeur attribuée.


      Si vous souhaitez attribuer la valeur créée par un bloc de 
      script à une variable, utilisez l'opérateur d'appel pour 
      exécuter le bloc de script directement, comme illustré dans 
      l'exemple suivant :


          C:\PS> $a = &{param ($uu = "Paramètre"); "$uu attribué."}
          C:\PS> $a
          Paramètre attribué.


      Pour plus d'informations sur l'opérateur d'appel, consultez 
      about_Operators.


VOIR AUSSI
    about_Functions
    about_Functions_Advanced
    about_Operators




Table des matières