Asignación de valores y tipos a las variables en scripts de Windows PowerShell
Al trabajar con valores de variable, se usan los operadores matemáticos estándar con los que ya está familiarizado, como Igual (=), Más (+) y Menos (–).
Para asignar un valor a una variable, use el operador Igual a (=). Por ejemplo:
$num1 = 10
$logFile = "C:\Logs\log.txt"
También puede asignar un valor a una variable mediante un comando que se evalúa. El resultado del comando se coloca en la variable. Por ejemplo:
$user = Get-ADUser Administrator
$service = Get-Service W32Time
Nota
Si un comando devuelve varios resultados, la variable se convierte en una matriz que contiene varios valores. Aprenderá más sobre las matrices más adelante en este módulo.
Para mostrar el valor de una variable, escriba el nombre de la variable y pulse la tecla Entrar. También puede mostrar el valor como parte de un comando mediante Write-Host. Por ejemplo:
$user
Write-Host "The location of the log file is $logFile"
Nota
Cuando se muestra una variable mediante Write-Host y se coloca el nombre de la variable entre comillas dobles ("), se evalúa esa variable y se muestra su valor. Si usa comillas simples ('), no se evalúa esa variable, lo que da lugar a que se muestre su nombre en su lugar.
Para quitar todos los valores de una variable, puede establecer la variable igual a $null. Windows PowerShell define automáticamente la variable $null como nothing (nada). Por ejemplo:
$num1 = $null
$str1 = $null
Nota
Para borrar una variable, también puede usar Clear-Variable.
Puede usar operadores matemáticos con variables, como se muestra en el ejemplo siguiente:
$area = $length * $width
$sum = $num1 + $num2
$path = $folder + $file
Puede establecer el valor de una variable mediante el cmdlet Set-Variable. Cuando se usa este cmdlet, no se incluye el símbolo $ al hacer referencia al nombre, como se muestra en el ejemplo siguiente:
Set-Variable -Name num1 -Value 5
Lectura adicional: para obtener más información sobre los operadores de asignación, consulte Acerca de los operadores de asignación.
Asignación de un tipo a una variable
A todas las variables se les asigna un tipo. El tipo de la variable determina los datos que se pueden almacenar en ella. En la mayoría de los casos, Windows PowerShell determina automáticamente el tipo de una variable durante la asignación de su valor. La asignación automática del tipo de variable funciona bien la mayoría de las veces. Sin embargo, en algunos casos, el tipo de datos es ambiguo y es posible que prefiera establecer explícitamente el tipo de la variable.
En la tabla siguiente, se enumeran los tipos de variables comunes que se usan en Windows PowerShell.
Tabla 1: Tipos de variables comunes usados en Windows PowerShell
| Tipo | Descripción |
|---|---|
| Cuerda | Una variable de cadena almacena texto que puede incluir caracteres especiales. Por ejemplo, "Esto es una cadena". |
| Int | Una variable de entero de 32 bits almacena un número sin posiciones decimales. Por ejemplo, 228. |
| Doble | Una variable de número de punto flotante de 64 bits almacena un número que puede incluir posiciones decimales. Por ejemplo, 128,45. |
| Fecha y hora | Una variable DateTime almacena un objeto de fecha que incluye una fecha y hora. Por ejemplo, 5 de enero de 2022 10:00 a. m. |
| Bool | Una variable booleana solo puede almacenar los valores $true o $false. |
Si no asigna un tipo de variable, Windows PowerShell asigna automáticamente un tipo en función del valor que asigne a la variable. Cuando el valor se encuentra entre comillas, generalmente se interpreta como una cadena. Por ejemplo, Windows PowerShell interpretaría 5 como un entero, pero "5" se interpretaría como una cadena.
Puede forzar que una variable acepte solo un tipo específico de contenido definiendo el tipo. Al definir el tipo, Windows PowerShell intenta convertir el valor que proporcione en el tipo correcto. Si Windows PowerShell no puede convertir el valor en el tipo correcto, devuelve un error.
En los ejemplos siguientes, se muestran la variable $num2, que se define como un entero de 32 bits, y la variable $date, que se define como DateTime.
[Int]$num2 = "5"
[DateTime]$date = "January 5, 2022 10:00AM"
Para revisar el tipo de una variable, anexe el método GetType() al nombre de la variable. Por ejemplo:
$date.GetType()