about_Type_Operators
Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0
TÓPICO
about_Type_Operators
DESCRIÇÃO BREVE
Descreve os operadores que funcionam com os tipos Microsoft .NET Framework.
DESCRIÇÃO LONGA
Os operadores de tipo booliano (-is e -isNot) informam se um objeto é uma instância de um tipo .NET Framework especificado. O operador -is retorna um valor TRUE se o tipo corresponder e houver um valor FALSE. O operador -isNot retorna um valor FALSE se o tipo corresponder e houver um valor TRUE.
O operador -as tenta converter o objeto de entrada no tipo .NET Framework especificado. Se ele tiver êxito, retornará o objeto convertido. Se ele falhar, não retornará nada. Ele não retorna um erro.
A tabela a seguir lista os operadores de tipo do Windows PowerShell®.
Operator Description Example
-------- ------------------------ -------------------------------------
-is Returns TRUE when the C:\PS> (get-date) -is [DateTime]
input is an instance True
of the specified
.NET Framework type.
-isNot Returns TRUE when the C:\PS> (get-date) -isNot [DateTime]
input is not an instance False
of the specified
.NET Framework type.
-as Converts the input to C:\PS> 12/31/07 -as [DateTime]
the specified Monday, December 31, 2007 12:00:00 AM
.NET Framework type.
A sintaxe dos operadores de tipo é a seguinte:
<input> <operator> [.NET type]
Você também pode usar a sintaxe a seguir:
<input> <operator> ".NET type"
Para especificar o tipo .NET Framework, coloque o nome do tipo entre colchetes ([ ]) ou digite 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.Process, digite [System.Diagnostics.Process], [Diagnostics.Process] ou "diagnostics.process".
Os operadores de tipo sempre retornam um valor booliano, mesmo se a entrada for uma coleção de objetos. No entanto, quando a entrada for uma coleção, os operadores de tipo corresponderão ao tipo .NET Framework da coleção. Eles não correspondem ao tipo de cada objeto, mesmo quando todos os objetos forem do mesmo tipo.
Para localizar o tipo .NET Framework de um objeto, use o cmdlet Get-Member. Ou 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 retornado de um comando Get-Culture. Insira o corpo da seção aqui.
C:\PS> (get-culture).gettype().fullname
System.Globalization.CultureInfo
EXEMPLOS
Os exemplos a seguir mostram alguns usos dos operadores de tipo:
C:\PS> 32 -is [Float]
False
C:\PS> 32 -is "int"
True
C:\PS> (get-date) -is [DateTime]
True
C:\PS> "12/31/2007" -is [DateTime]
False
C:\PS> "12/31/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 .NET Framework da coleção, e não o tipo dos objetos individuais da 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> "12/31/07" -is [DateTime]
False
C:\PS> "12/31/07" -as [DateTime]
Monday, December 31, 2007 12:00:00 AM
C:\PS> $date = "12/31/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 no tipo .NET Framework, ele não retorna nada.
C:\PS> 1031 -as [System.Diagnostic.Process]
C:\PS>
CONSULTE TAMBÉM
about_Operators