Está en la página 1de 3

TEMA

about_Type_Operators
DESCRIPCIN BREVE
Describe los operadores que funcionan con tipos de Microsoft .NET
Framework.
DESCRIPCIN 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 Descripcin
-------- ------------------------is
Devuelve TRUE cuando la
entrada es una instancia
del tipo de .NET Framework
especificado.

Ejemplo
-------------C:\PS> (get-date) -is
[datetime] True

-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


especificado.

December 31, 2007 12:00:00 AM

Esta es la sintaxis de los operadores de tipo:


<entrada> <operador> [.NET type]
Tambin 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 raz 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 coleccin de objetos. Sin embargo,
cuando la entrada es una coleccin, los operadores de tipo
coinciden con el tipo de .NET Framework de la coleccin. 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. Tambin puede utilizar el mtodo GetType de
todos los objetos junto con la propiedad FullName de este mtodo.
Por ejemplo, la instruccin 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.Cmdlet
Info]
True
En el ejemplo siguientes se muestra que cuando la entrada es una
coleccin de objetos, el tipo correspondiente es el tipo de .NET
Framework de la coleccin, no el tipo de los objetos individuales
de la coleccin.
En este ejemplo, aunque los cmdlets Get-Culture y Get-UICulture
devuelven objetos System.Globalization.CultureInfo, una coleccin
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.CultureI
nfo]
False
C:\PS> (get-culture), (get-uiculture) -is [Array]
True
C:\PS> (get-culture), (get-uiculture) | foreach {$_ -is [System.Globaliz
ation.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
---1031

Name
---de-DE

DisplayName
----------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 TAMBIN
about_Operators

También podría gustarte