about_Script_Blocks

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0

TÓPICO

about_Script_Blocks

DESCRIÇÃO BREVE

Define o que é um bloco de script e explica como usar os 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 é um conjunto de instruções ou expressões que podem ser usadas como uma única unidade. Um bloco de script pode aceitar argumentos e retornar valores.

Sintaticamente, um bloco de script é uma lista de instruções entre chaves, como mostra a seguinte sintaxe:

        {<statement list>}

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

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

        {
            param ([type]$parameter1 [,[type]$parameter2])
            <statement list>
        }

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

Como funções, 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). Os comandos podem ter valores de parâmetro do bloco de script. Por exemplo, o cmdlet Invoke-Command tem um parâmetro de ScriptBlock que usa um valor de bloco de script, conforme 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 que é usado como um valor pode ser mais complicado, como mostrado no exemplo a seguir:

          C:\PS> invoke-command -scriptblock { param ($uu = "Parameter"); 
              "$uu assigned." }  
          Parameter assigned.

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

          C:\PS> invoke-command -scriptblock {param ($uu = "Parameter"); 
              "$uu assigned."} -args "Other value"
          Other value assigned.

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

          C:\PS> $a = {param ($uu = "Parameter"); "$uu assigned."}

Você pode usar a variável com um cmdlet, como Invoke-Command, como mostrado no exemplo a seguir:

          C:\PS> invoke-command -scriptblock $a -args "Other value"
          Other value assigned.

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

          C:\PS> &$a 
          Parameter assigned.

Você também pode fornecer um parâmetro para o bloco de script, como mostrado no exemplo a seguir:

          C:\PS> &$a "Other value"
          Other value assigned.

Se você deseja atribuir o valor que é criado por um bloco de script a uma variável, use o operador de chamada para executar o bloco de script diretamente, conforme mostrado no exemplo a seguir:

          C:\PS> $a = &{param ($uu = "Parameter"); "$uu assigned."}
          C:\PS> $a
          Parameter assigned.

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

CONSULTE TAMBÉM

about_Functions

about_Functions_Advanced

about_Operators