Búsqueda de sitios web

¿Cómo obtener el tipo de variable en PowerShell?


Recientemente, alguien me preguntó cómo obtener el tipo de variable de PowerShell en un grupo de usuarios de PowerShell en EE. UU. Sugerí algunos métodos y en este tutorial le mostraré cómo obtener el tipo de una variable en PowerShell.

Para obtener el tipo de una variable en PowerShell, utilice el método GetType(). Por ejemplo, si tiene una variable $usaCity="Nueva York", puede recuperar su tipo agregando .GetType().Name a la variable, de esta manera: $usaCity.GetType().Nombre. Esto devolverá "Cadena", indicando que la variable es de tipo System.String.

PowerShell es un lenguaje de tipo dinámico, lo que significa que el tipo de variable se determina en tiempo de ejecución en función del valor que se le asigna.

El método GetType()

En PowerShell, la forma principal de obtener el tipo de una variable es mediante el método GetType(). Este método está disponible en todos los objetos de PowerShell y devuelve un objeto System.Type que proporciona información sobre el tipo de variable.

Echemos un vistazo a un ejemplo del mundo real:

$usaCity = "New York"
$usaCity.GetType().Name

En este ejemplo, asignamos el valor de cadena "Nueva York" a la variable $usaCity. Al agregar .GetType().Name a la variable, PowerShell devuelve el tipo de variable, que en este caso es "Cadena".

Puede ver el resultado en la captura de pantalla a continuación, después de ejecutar el script de PowerShell usando el código VS.

Es importante tener en cuenta que cuando se utiliza GetType(), es necesario incluir paréntesis para llamar al método correctamente.

Consulte Comprobar si una variable es nula en PowerShell

Asignación de tipo dinámico

Una de las características interesantes de PowerShell es su capacidad para asignar tipos a variables en función del valor asignado de forma dinámica. Por ejemplo:

$usaPopulation = 331002651 # System.Int32
$usaCapital = "Washington, D.C." # System.String
$usaStates = 50, "fifty" # System.Object[]

En este ejemplo, PowerShell asigna automáticamente los tipos apropiados a las variables según sus valores. $usaPopulation es un número entero (System.Int32), $usaCapital es una cadena (System.String) y $usaStates es una matriz de objetos (System.Object[]).

Uso de Get-Member para obtener información detallada sobre tipos

Si bien GetType() en PowerShell proporciona la información de tipo básica, puede usar el cmdlet Get-Member para obtener información más detallada sobre el tipo de objeto de una variable. Por ejemplo:

$usaPresident = "Who ever it is"
$usaPresident | Get-Member

Este código generará una lista de miembros (propiedades y métodos) disponibles para la variable $usaPresident. Esta es otra forma de obtener el tipo de variable.

Aquí está el resultado en la siguiente captura de pantalla:

Consulte las convenciones de nomenclatura de variables de PowerShell

Ejemplos de tipos de variables de comprobación de PowerShell

Ahora, permítame mostrarle algunos otros ejemplos para ayudarle a aprender más sobre cómo verificar tipos de variables en PowerShell.

Ejemplo 1: tipos básicos

Comencemos con algunos ejemplos básicos. Supongamos que tenemos una variable que representa la población de la ciudad de Nueva York. Luego puede escribir el script de PowerShell a continuación para obtener el tipo de variable.

$populationNYC = 8419000
$populationType = $populationNYC.GetType()
Write-Output "The type of populationNYC is: $($populationType.FullName)"

En este ejemplo, el resultado será:

The type of populationNYC is: System.Int32

Aquí, el método GetType() se utiliza para determinar que la variable $populationNYC es de tipo System.Int32.

Aquí está el resultado en la captura de pantalla a continuación para su referencia.

Ejemplo 2: tipo de cadena

Ahora, consideremos una variable que contiene el nombre de un lugar famoso en los EE. UU.:

$landmark = "Statue of Liberty"
$landmarkType = $landmark.GetType()
Write-Output "The type of landmark is: $($landmarkType.FullName)"

La salida será:

The type of landmark is: System.String

Esto muestra que la variable $landmark es de tipo System.String.

Ejemplo 3: tipo de matriz

PowerShell también admite matrices. Creemos una serie de ciudades estadounidenses famosas:

$cities = @("New York", "Los Angeles", "Chicago", "Houston", "Phoenix")
$citiesType = $cities.GetType()
Write-Output "The type of cities is: $($citiesType.FullName)"

La salida será:

The type of cities is: System.Object[]

Esto indica que $cities es una matriz de objetos (System.Object[]).

Ejemplo 4: Validación de parámetros de función

Suponga que tiene una función que calcula el área de un rectángulo y desea asegurarse de que los parámetros sean números enteros:

function Get-Area {
    param (
        [int]$length,
        [int]$width
    )
    return $length * $width
}

$length = 10
$width = 20
Write-Output "The area of the rectangle is: $(Get-Area -length $length -width $width)"

Al especificar [int] antes de los parámetros, se asegura de que solo se acepten valores enteros, evitando posibles errores de tiempo de ejecución.

Conclusión

En este tutorial, he explicado cómo obtener el tipo de variable en PowerShell usando diferentes métodos con ejemplos. Siempre recomendé usar el método GetType() y el cmdlet Get-Member para determinar fácilmente el tipo de una variable y acceder a sus propiedades y métodos.

Artículos relacionados