Introducción

Si queremos evaluar una condición bajo la cual se ejecute una porción de código usamos las sentencias condicionales if, elseif, y else.

Este ejemplo es muy sencillo, podría ser usado perfectamente para condicionar la ejecución del unos comandos a una determinada fecha o hora.

Fuente: IfDate.ps1

$Calendar = Get-Date
If ($Calendar.Month -eq '5') {"Este mes es Mayo"}
Else {"No es Mayo"}

En este ejemplo vamos evaluando condiciones de forma encadenada comprobando si la variable $temperature se ajusta a un determinado límite. Empleamos el operador de comparación -le (Comparison operators - PowerShell - SS64.com) que comprueba si la variable es menor o igual que un entero (less or equal).

Fuente: IfTemperature.ps1

$temperature = 90
if($temperature -le 0)
{
    "Balmy Canadian Summer"
}
elseif($temperature -le 32)
{
    "Freezing"
}
elseif($temperature -le 50)
{
    "Cold"
}
elseif($temperature -le 70)
{
    "Warm"
}
else
{
    "Hot"
}

Asignación de variables con If

Fuente: IfVarAssignment.ps1

Adicionalmente podemos usar las expresiones condicionales para asignar el valor a una variable.

$result = if(Get-Process -Name notepad) { "Running" } else { "Not running" }

Operadores de comparación

Fuente: ComparisonOperatorsExamples.ps1

Operador Descripción
-eq Equal
-ne Not equal
-ge Greater than or equal
-gt Greater than
-lt Less than
-le Less than or equal
-like Wildcard comparison
-notlike Wildcard comparison
-match Regular expression comparison
-notmatch Regular expression comparison
-replace Replace operator
-contains Containment operator
-notcontains Containment operator
-in Like –contains, but with the operands reversed.(PowerShell 3.0)
-notin Like –notcontains, but with the operands reversed.(PowerShell 3.0)

Operadores lógicos

Operador Descripción
-and Logical And
-or Logical Or
-xor Logical exclusive Or
-not logical not
! logical not
$demo = $null
if (-Not ($demo)) { write "Zero, null or Empty"}
if (!($demo)) { write "Zero, null or Empty"}
# PowerShell If AND Statement Simple Example
Clear-Host
$Calendar = Get-Date
If ($Calendar.Day -eq '25' -And $Calendar.Month -eq '12') 
{
    "Christmas Day"
}
Else 
{
    "It's not Christmas yet! " + $Calendar.Month +"/" +$Calendar.Day 
}

Operadores ternarios

#$CarColor = 'Red'
$CarColor = 'Blue' 
$MatchColor = @{$true = 'The car color is blue'; $false = 'The car color is not blue'}[$CarColor -eq 'Blue']
$MatchColor

Enlaces externos