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