TÓPICO
    about_Script_Blocks

DESCRIÇÃO RESUMIDA
    Define o que é um bloco de script e explica como usar blocos de 
    script na linguagem de programação do Windows PowerShell.


DESCRIÇÃO LONGA
    Na linguagem de programação do Windows PowerShell, um bloco de 
    script é uma coleção de instruções ou expressões que podem ser 
    usadas como uma só unidade. Um bloco de script pode aceitar 
    argumentos e valores de retorno.

    Sintaticamente, um bloco de script é uma lista de instruções 
    entre chaves, como mostrado nesta sintaxe:


        {<lista de instruções>}


    Um bloco de script retorna a saída de todos os comandos no bloco 
    de script, seja como um único objeto ou como uma matriz.

    Assim como as funções, um bloco de script pode incluir 
    parâmetros. Use a palavra-chave Param para atribuir parâmetros 
    nomeados, conforme mostrado nesta sintaxe: 


        {
            param ([type]$parameter1 [,[type]$parameter2]) 
            <lista de instruções>
        }


    Em um bloco de script, ao contrário de uma função, você não pode 
    especificar parâmetros fora das chaves.


    Assim como as funções, os blocos de script podem incluir as 
    palavras-chave DynamicParam, Begin, Process e End. Para obter mais 
    informações, consulte about_Functions e about_Functions_Advanced.


  Usando blocos de script

      Um bloco de script é uma instância de um tipo do Microsoft .NET 
      Framework (System.Management.Automation.ScriptBlock). Comandos 
      podem ter blocos de script como valores de parâmetros. Por 
      exemplo, o cmdlet Invoke-Command tem um parâmetro ScriptBlock 
      com um valor de bloco de script, como mostrado neste exemplo:


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

      O bloco de script usado como valor pode ser mais complicado, 
      conforme mostrado no exemplo a seguir:


          C:\PS> invoke-command -scriptblock { param ($uu = "Parâmetro"); 
              "$uu atribuído." } 
          Parâmetro atribuído.


      O bloco de script no exemplo acima usa a palavra-chave Param 
      para criar um parâmetro com um valor padrão. O exemplo a seguir 
      usa o parâmetro Args do cmdlet Invoke-Command para atribuir um valor 
      diferente ao parâmetro:


          C:\PS> invoke-command -scriptblock {param ($uu = "Parâmetro"); 
              "$uu atribuído."} -args "Outro valor" 
	  Outro valor atribuído.


      Você pode atribuir um bloco de script a uma variável, como 
      mostrado no exemplo a seguir:


          C:\PS> $a = {param ($uu = "Parâmetro"); "$uu atribuído."}


      É possível usar a variável com um cmdlet como Invoke-Command, como 
      mostrado no exemplo a seguir:


          C:\PS> invoke-command -scriptblock $a -args "Outro valor"
          Outro valor atribuído.


      Você pode executar um bloco de script atribuído a uma variável 
      usando o operador de chamada (&), como mostrado no exemplo a seguir:


          C:\PS> &$a 
          Parâmetro atribuído.


      Também é possível fornecer um parâmetro ao bloco de script, 
      como mostrado no exemplo a seguir:


          C:\PS> &$a "Outro valor"
          Outro valor atribuído.


      Se quiser atribuir o valor criado por um bloco de script a uma 
      variável, use o operador de chamada para executar o bloco de script 
      diretamente, como mostrado no exemplo a seguir:


          C:\PS> $a = &{param ($uu = "Parâmetro"); "$uu atribuído."}
          C:\PS> $a
          Parâmetro atribuído.


      Para obter mais informações sobre o operador de chamada, consulte 
      about_Operators.


CONSULTE TAMBÉM
    about_Functions
    about_Functions_Advanced
    about_Operators





Sumário