TÓPICO about_Type_Operators DESCRIÇÃO RESUMIDA Descreve os operadores que funcionam com os tipos do Microsoft .NET Framework. DESCRIÇÃO LONGA Os operadores de tipo booleanos (-is e -isnot) informam se um objeto é uma instância de um tipo especificado do .NET Framework. O operador -is retornará um valor TRUE se o tipo corresponder; caso contrário, um valor FALSE. O operador -isnot retornará um valor FALSE se o tipo corresponder; caso contrário, um valor TRUE. O operador -as tenta converter o objeto de entrada ao tipo especificado do .NET Framework. Se tiver sucesso, retornará o objeto convertido. Se falhar, não retornará nada. Ele não retorna erro. A tabela a seguir lista os operadores de tipo no Windows PowerShell. Operador Descrição Exemplo -------- ------------------------ ------------------------------------- -is Retorna TRUE quando a C:\PS> (get-date) -is [datetime] True entrada é uma instância do tipo especificado do .NET Framework. -isnot Retorna TRUE quando a C:\PS> (get-date) -isnot [datetime] False entrada não é uma instância do tipo especificado do .NET Framework. -as Converte a entrada ao C:\PS> 31/12/07 -as [datetime] Segunda-feira, tipo especificado do 31 de dezembro de 2007 00:00:00 .NET Framework. A sintaxe dos operadores de tipo é a seguinte: <entrada> <operador> [.NET type] Você também pode usar a sintaxe a seguir: <entrada> <operador> ".NET type" Para especificar o tipo do .NET Framework, coloque o nome do tipo entre colchetes ([]) ou insira o tipo como uma cadeia de caracteres, como [DateTime] ou "datetime" para System.DateTime. Se o tipo não estiver na raiz do namespace do sistema, especifique o nome completo do tipo de objeto. Você pode omitir "System.". Por exemplo, para especificar System.Diagnostics.Proces s, insira [System.Diagnostics.Process], [Diagnostics.Process] ou "diagnostics.process". Os operadores de tipo sempre retornam um valor booleano, mesmo que a entrada seja uma coleção de objetos. Contudo, quando a entrada é uma coleção, os operadores de tipo fazem a correspondência com o tipo do .NET Framework para a coleção. Eles não fazem a correspondência com o tipo de cada objeto, nem mesmo quando todos os objetos são do mesmo tipo. Para localizar o tipo do .NET Framework para um objeto, use o cmdlet Get-Member. Ou então use o método GetType de todos os objetos, junto com a propriedade FullName desse método. Por exemplo, a instrução a seguir obtém o tipo do valor de retorno de um comando Get-Culture: C:\PS> (get-culture).gettype().fullname System.Globalization.CultureInfo EXEMPLOS Os exemplos a seguir mostram alguns usos dos operadores Type: C:\PS> 32 -is [Float] False C:\PS> 32 -is "int" True C:\PS> (get-date) -is [DateTime] True C:\PS> "31/12/2007" -is [DateTime] False C:\PS> "31/12/2007" -is [String] True C:\PS> (get-process powershell)[0] -is [System.Diagnostics.Process] True C:\PS> (get-command get-member) -is [System.Management.Automation.CmdletInfo] True O exemplo a seguir mostra que, quando a entrada é uma coleção de objetos, o tipo correspondente é o tipo do .NET Framework para a coleção, e não o tipo dos objetos individuais na coleção. Neste exemplo, embora os cmdlets Get-Culture e Get-UICulture retornem objetos System.Globalization.CultureInfo, uma coleção desses objetos é uma matriz System.Object. C:\PS> (get-culture) -is [System.Globalization.CultureInfo] True C:\PS> (get-uiculture) -is [System.Globalization.CultureInfo] True C:\PS> (get-culture), (get-uiculture) -is [System.Globalization.CultureInfo] False C:\PS> (get-culture), (get-uiculture) -is [Array] True C:\PS> (get-culture), (get-uiculture) | foreach {$_ -is [System.Globalization.CultureInfo]) True True C:\PS> (get-culture), (get-uiculture) -is [Object] True Os exemplos a seguir mostram como usar o operador -as. C:\PS> "31/12/07" -is [datetime] False C:\PS> "31/12/07" -as [datetime] Segunda-feira, 31 de dezembro de 2007 00:00:00 C:\PS> $date = "31/12/07" -as [datetime] C:\PS>$a -is [datetime] True C:\PS> 1031 -as [System.Globalization.CultureInfo] LCID Name DisplayName ---- ---- ----------- 1031 de-DE German (Germany) O exemplo a seguir mostra que, quando o operador -as não pode converter o objeto de entrada ao tipo do .NET Framework, ele não retorna nada. C:\PS> 1031 -as [System.Diagnostic.Process] C:\PS> CONSULTE TAMBÉM about_Operators