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