TÓPICO about_methods DESCRIÇÃO RESUMIDA Descreve como usar os métodos para executar ações nos objetos no Windows PowerShell. DESCRIÇÃO LONGA O Windows PowerShell usa coleções estruturadas de informações, chamada objetos, para representar os itens nos repositórios de dados ou o estado do computador. Por exemplo, quando você acessa um arquivo no Windows PowerShell, você não está trabalhando com o arquivo real. Em vez disso, você está trabalhando com um objeto FileInfo, um tipo de objeto que age como o proxy do arquivo. A maioria dos objetos inclui métodos. Um método é um conjunto de instruções que especificam uma ação específica que pode ser executada com esse objeto. Por exemplo, o objeto FileInfo inclui um método chamado CopyTo, que permite copiar o arquivo representado pelo objeto. Para exibir uma lista de métodos e definições de métodos associadas a um objeto particular, você pode usar o cmdlet Get-Member. Entretanto, para usar o cmdlet, o objeto já deve existir de alguma forma, como representado por uma variável, como um objeto criado quando você especifica um comando como um argumento para o comando Get-Member ou como um objeto transmitido pelo pipeline. Por exemplo, suponha que tenha sido atribuído um valor de cadeia de caracteres à variável $a, o que significa que a variável está associada a um objeto de cadeia de caracteres. Para exibir uma lista de métodos de objeto, digite o seguinte comando no prompt de comando do Windows PowerShell: Get-Member -inputobject $a -membertype method Se você quiser ver que métodos e definições de métodos estão associados a um objeto que é transmitido pelo pipeline, use um comando Get-Member no pipeline, conforme mostrado no exemplo a seguir: Get-ChildItem c:\final.txt | Get-Member -membertype method O modo mais comum de chamar um método é especificar o nome do método depois de uma referência de objeto (como uma variável ou expressão). É necessário separar a referência do objeto e o método com um ponto. Além disso, você deve usar parênteses imediatamente depois do nome do método para agrupar qualquer argumento que deve ser transmitido para o método. Mesmo que nenhum argumento seja passado em uma assinatura de método, será necessário usar um conjunto de parênteses vazios. Por exemplo, o comando a seguir usa o método GetType para retornar o tipo de dados associado ao objeto da cadeia de caracteres $a: $a.GetType() O método GetType retornará o tipo de dados para qualquer objeto e uma variável sempre representa um objeto. O tipo de objeto depende do tipo de dados armazenado nessa variável. Cada ação realizada no Windows PowerShell é associada a objetos, independentemente de estar declarando uma variável ou combinando comandos em um pipeline. Como resultado, os métodos podem ser usados em diversas situações. Por exemplo, é possível usar um método para executar uma ação em um valor de propriedade, como mostrado no comando abaixo: (Get-ChildItem c:\final.txt).name.ToUpper() Nesse caso, o objeto no qual o método ToUpper está sendo chamado é o objeto da cadeia de caracteres associado à propriedade de nome. (Observe que o arquivo Final.txt deve existir na raiz da unidade C: para que esse exemplo funcione.) A propriedade de nome é realmente uma propriedade do objeto FileInfo retornado pelo comando Get-ChildItem. Isso demonstra não apenas a natureza orientada a objetos do Windows PowerShell, mas também mostra como os métodos podem ser chamados em qualquer objeto acessível. Você pode obter os mesmos resultados apresentados no último exemplo, utilizando uma variável para armazenar a saída do comando Get-ChildItem, como mostrado no exemplo a seguir: $a = (Get-ChildItem c:\final.txt).name $a.ToUpper() O comando usa novamente o método ToUpper do objeto da cadeia de caracteres associado à variável, que contém o nome do arquivo retornado pelo comando Get-ChildItem. Em alguns casos, um método necessita de um argumento para direcionar a sua ação. Por exemplo, o objeto FileInfo inclui o método MoveTo, que fornece uma forma de mover um arquivo de um local para outro. O método requer um argumento que especifique o local de destino para o arquivo. O seguinte comando demonstra como incluir esse argumento: (Get-ChildItem c:\final.txt).MoveTo("c:\techdocs\final.txt") O comando Get-ChildItem retorna um objeto FileInfo para o arquivo Final.txt e, em seguida, utiliza o método MoveTo daquele objeto para iniciar a ação e especificar o novo local do arquivo. Para determinar os argumentos associados a um método, revise a definição do método correspondente. Uma definição de método contém uma ou mais assinaturas de método (também conhecidas como sobrecargas no Microsoft .NET Framework). Uma assinatura de método contém o nome de um método e zero ou mais parâmetros que você deve fornecer quando chamar o método. Cada assinatura de método é separada da assinatura anterior com uma vírgula na exibição do cmdlet Get-Member. Por exemplo, o método CopyTo da classe FileInfo contém estas duas assinaturas de método: 1. CopyTo(String destFileName) 2. CopyTo(String destFileName, Boolean overwrite) A primeira assinatura de método pega o nome do arquivo de destino (incluindo o caminho) no qual copiar o arquivo de origem. No exemplo a seguir, o primeiro método CopyTo é usado para copiar Final.txt para o diretório C:\Bin: (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt") Se o arquivo já existir no local de destino, o método CopyTo falhará e o Windows PowerShell reportará o seguinte erro: Exceção ao chamar "CopyTo" com "1" argumento(s): "O arquivo 'c:\bin\final.txt' já existe.". Na segunda assinatura do método, você transmite o nome do arquivo de destino como você fez no primeiro caso, mas você também pode transmitir um valor Booleano para especificar se deseja ou não que um arquivo existente com o mesmo nome no local de destino seja sobrescrito, conforme mostra o exemplo a seguir: (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt", $true) Quando você transmite o valor Booleano, deve usar a variável $True, que é criada automaticamente pelo Windows PowerShell. A variável $True contém o valor Booleano "true". (Como você deve saber, a variável $False contém o valor Booleano "false".) CONSULTE TAMBÉM about_Objects Get-Member