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
- An Introduction to Error Handling in PowerShell – Keith Babinec's ....
- PowerShell Hacks: Ternarys and Null-coalescing operators.
- A Simpler If/Then Conditional Logic in PowerShell.
- Comparison Operators in PowerShell - TechNet Articles - United ....
- Powershell: Alternative to ternary operator.
- Conditional Logic in PowerShell.