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