Capítulo 4: Operaciones básicas con variables

Publicado por P. Ruiz en

Operar con variables numéricas

Los operadores que pueden utilizarse con variables numéricas reciben el nombre de operadores aritméticos y tenemos los siguientes:

PowerShell-UD04-009

De ellos, probablemente el único que necesite una explicación sea el último. Se trata de un operador que calcula la división entera (sin obtener decimales) entre un dividendo (en este caso el contenido de la variable $x) y un divisor (en este caso, 3) y, en lugar de devolver el cociente de la división, devuelve el resto.

Veamos un ejemplo:

PowerShell-UD04-010

Y cuando lo ejecutemos, obtendremos algo así:

PowerShell-UD04-011

Operadores aritméticos especiales

Cuando la variable que participa en la operación y la que recibe el resultado son la misma, PowerShell dispone de una serie de operadores que nos permiten resumir las expresiones. Por ejemplo, si queremos incrementar en 3 unidades el valor contenido en la variable $x, podríamos escribir la expresión:

PowerShell-UD04-012

Pero también podríamos resumirlo escribiendo:

PowerShell-UD04-013

Esto podríamos aplicarlo a todos los operadores aritméticos:

PowerShell-UD04-014

Todavía existe un caso especial que puede escribirse de forma aún más reducida. Me refiero al caso en que debamos incrementar o decrementar el contenido de la variable en uno. En estos casos, en lugar de escribir:

PowerShell-UD04-015

o escribir:

PowerShell-UD04-016

podríamos escribir, sencillamente:

PowerShell-UD04-017

… Y lo mismo podemos hacer con la resta:

PowerShell-UD04-018

Actividades resueltas: Trata de resolver las siguientes cuestiones, antes de consultar la respuesta:

    1. Ya sabemos de actividades anteriores que el cmdlet Get-WmiObject Win32_ComputerSystem nos ofrece un objeto con información del equipo.

      También sabemos que nos permite obtener cualquiera de sus propiedades de forma aislada. Por ejemplo, podemos obtener la cantidad de memoria disponible en el sistema, completando la orden de la siguiente forma:

      (Get-WmiObject Win32_ComputerSystem).TotalPhysicalMemory

      Sabiendo que el resultado de la expresión anterior estará representado en bytes, el objetivo de esta actividad es escribir un pequeño script que logre mostrar la información al usuario, pero medida en GigaBytes.

      PowerShell-UD04-047

    2. El cmdlet Get-WmiObject, que ya conocemos de actividades anteriores, también puede devolvernos objetos de la clase Win32_LogicalDisk, que contiene información sobre los discos. En concreto, para obtener información sobre el primer disco del sistema, escribiríamos algo como esto:

      (Get-WmiObject Win32_LogicalDisk)[0]

      La idea de esta actividad es mostrar al usuario el tamaño total del disco, y el espacio libre del que dispone, pero medido en GB.

      Para conseguirlo, usaremos las propiedades Size y FreeSpace. Es decir:

      (Get-WmiObject Win32_LogicalDisk)[0].Size y (Get-WmiObject Win32_LogicalDisk)[0].FreeSpace

      Sin embargo, debemos tener en cuenta que estas propiedades devuelven la información expresada en bytes.

      PowerShell-UD04-048

    3. ¿Cómo podríamos añadirle al ejemplo anterior una línea de resultado más, que exprese el porcentaje de espacio libre con respecto al total?

      PowerShell-UD04-049