¿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:
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-MemberEste 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.Int32Aquí, 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.


