TEMA about_Type_Operators DESCRIPCIÓN BREVE Describe los operadores que funcionan con tipos de Microsoft .NET Framework. DESCRIPCIÓN DETALLADA Los operadores de tipo booleano (-is y -isnot) indican si un objeto es una instancia de un tipo de .NET Framework especificado. El operador -is devuelve el valor TRUE si el tipo coincide y el valor FALSE en caso contrario. El operador -isnot devuelve el valor FALSE si el tipo coincide y el valor TRUE en caso contrario. El operador -as intenta convertir el objeto de entrada al tipo de .NET Framework especificado. Si se ejecuta correctamente, devuelve el objeto convertido. En caso contrario, no devuelve nada. No devuelve un error. En la tabla siguiente se enumeran los operadores de tipo de Windows PowerShell. Operador Descripción Ejemplo -------- ------------------------ -------------- -is Devuelve TRUE cuando la C:\PS> (get-date) -is entrada es una instancia [datetime] True del tipo de .NET Framework especificado. -isnot Devuelve TRUE cuando la C:\PS> (get-date) entrada no es una instancia -isnot [datetime] False del tipo de .NET Framework especificado. -as Convierte la entrada al C:\PS> 12/31/07 -as [datetime] Monday, tipo de .NET Framework December 31, 2007 12:00:00 AM especificado. Esta es la sintaxis de los operadores de tipo: <entrada> <operador> [.NET type] También puede usar la sintaxis siguiente: <entrada> <operador> ".NET type" Para especificar el tipo de .NET Framework, incluya el nombre de tipo entre corchetes ([]) o escriba el tipo como una cadena, como [DateTime] o "datetime" para System.DateTime. Si el tipo no está en la raíz del espacio de nombres System, especifique el nombre completo del tipo de objeto. Puede omitir "System.". Por ejemplo, para especificar System.Diagnostics.Process, escriba [System.Diagnostics.Process], [Diagnostics.Process] o "diagnostics.process". Los operadores de tipo siempre devuelven un valor booleano, aunque la entrada sea una colección de objetos. Sin embargo, cuando la entrada es una colección, los operadores de tipo coinciden con el tipo de .NET Framework de la colección. No coinciden con el tipo de cada objeto, incluso en el caso de que todos los objetos sean del mismo tipo. Para buscar el tipo de .NET Framework de un objeto, utilice el cmdlet Get-Member. También puede utilizar el método GetType de todos los objetos junto con la propiedad FullName de este método. Por ejemplo, la instrucción siguiente obtiene el tipo del valor devuelto de un comando Get-Culture: C:\PS> (get-culture).gettype().fullname System.Globalization.CultureInfo EJEMPLOS En los ejemplos siguientes se muestran algunos usos de los operadores Type: 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 En el ejemplo siguientes se muestra que cuando la entrada es una colección de objetos, el tipo correspondiente es el tipo de .NET Framework de la colección, no el tipo de los objetos individuales de la colección. En este ejemplo, aunque los cmdlets Get-Culture y Get-UICulture devuelven objetos System.Globalization.CultureInfo, una colección de estos objetos es una 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 En los ejemplos siguientes se muestra la forma de usar el 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) En el ejemplo siguientes se muestra que cuando el operador -as no puede convertir el objeto de entrada al tipo de .NET Framework, no devuelve nada. C:\PS> 1031 -as [System.Diagnostic.Process] C:\PS> VEA TAMBIÉN about_Operators