Les sentències condicionals són una part fonamental de qualsevol llenguatge de programació, incloent PowerShell. Aquestes permeten que el codi prengui decisions basades en certes condicions, executant diferents blocs de codi segons si aquestes condicions es compleixen o no.
Conceptes Clau
- If-Else: La sentència
if
s'utilitza per executar un bloc de codi si una condició és certa. La sentènciaelse
s'utilitza per executar un bloc de codi alternatiu si la condició no és certa. - ElseIf: La sentència
elseif
permet afegir condicions addicionals que es comproven si les condicions anteriors no es compleixen. - Switch: La sentència
switch
s'utilitza per seleccionar un bloc de codi a executar d'entre múltiples opcions basades en el valor d'una expressió.
If-Else
Sintaxi
if (<condició>) { # Bloc de codi si la condició és certa } else { # Bloc de codi si la condició no és certa }
Exemple
$edat = 18 if ($edat -ge 18) { Write-Output "Ets major d'edat." } else { Write-Output "Ets menor d'edat." }
Explicació
$edat = 18
: Assigna el valor 18 a la variable$edat
.if ($edat -ge 18)
: Comprova si$edat
és major o igual a 18.Write-Output "Ets major d'edat."
: S'executa si la condició és certa.else
: S'executa si la condició no és certa.Write-Output "Ets menor d'edat."
: S'executa si la condició no és certa.
ElseIf
Sintaxi
if (<condició1>) { # Bloc de codi si la condició1 és certa } elseif (<condició2>) { # Bloc de codi si la condició2 és certa } else { # Bloc de codi si cap de les condicions anteriors és certa }
Exemple
$nota = 85 if ($nota -ge 90) { Write-Output "Excel·lent" } elseif ($nota -ge 75) { Write-Output "Bé" } else { Write-Output "Necessita millorar" }
Explicació
$nota = 85
: Assigna el valor 85 a la variable$nota
.if ($nota -ge 90)
: Comprova si$nota
és major o igual a 90.elseif ($nota -ge 75)
: Comprova si$nota
és major o igual a 75.else
: S'executa si cap de les condicions anteriors és certa.
Switch
Sintaxi
switch (<expressió>) { <valor1> { # Bloc de codi si l'expressió és igual a valor1 } <valor2> { # Bloc de codi si l'expressió és igual a valor2 } default { # Bloc de codi si cap valor coincideix } }
Exemple
$dia = "Dilluns" switch ($dia) { "Dilluns" { Write-Output "Avui és Dilluns." } "Dimarts" { Write-Output "Avui és Dimarts." } "Dimecres" { Write-Output "Avui és Dimecres." } default { Write-Output "No és un dia laborable." } }
Explicació
$dia = "Dilluns"
: Assigna el valor "Dilluns" a la variable$dia
.switch ($dia)
: Comprova el valor de$dia
."Dilluns" { Write-Output "Avui és Dilluns." }
: S'executa si$dia
és "Dilluns".default { Write-Output "No és un dia laborable." }
: S'executa si cap valor coincideix.
Exercicis Pràctics
Exercici 1
Escriu un script que comprovi si un nombre és positiu, negatiu o zero.
Solució
$nombre = -5 if ($nombre -gt 0) { Write-Output "El nombre és positiu." } elseif ($nombre -lt 0) { Write-Output "El nombre és negatiu." } else { Write-Output "El nombre és zero." }
Exercici 2
Escriu un script que determini la categoria d'edat d'una persona (infant, adolescent, adult, ancià) basant-se en la seva edat.
Solució
$edat = 25 if ($edat -lt 13) { Write-Output "Infant" } elseif ($edat -lt 18) { Write-Output "Adolescent" } elseif ($edat -lt 65) { Write-Output "Adult" } else { Write-Output "Ancià" }
Resum
En aquesta secció, hem après com utilitzar les sentències condicionals if
, elseif
, else
i switch
en PowerShell per prendre decisions basades en condicions. Aquestes eines són essencials per escriure scripts dinàmics i flexibles que poden respondre a diferents situacions. Hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. En el següent tema, explorarem els bucles en PowerShell per repetir blocs de codi de manera eficient.
Curs de PowerShell
Mòdul 1: Introducció a PowerShell
- Què és PowerShell?
- Instal·lació i Configuració de PowerShell
- Consola i ISE de PowerShell
- Comandes i Sintaxi Bàsiques
- Sistema d'Ajuda en PowerShell
Mòdul 2: Scripting Bàsic
- Variables i Tipus de Dades
- Operadors en PowerShell
- Sentències Condicionals
- Bucles en PowerShell
- Funcions i Scripts
Mòdul 3: Treballant amb Objectes
- Comprensió dels Objectes
- Propietats i Mètodes dels Objectes
- Pipelines i Manipulació d'Objectes
- Filtratge i Selecció d'Objectes
- Ordenació i Agrupació d'Objectes
Mòdul 4: Tècniques Avançades de Scripting
- Gestió d'Errors
- Depuració de Scripts
- Expressions Regulars
- Treballant amb Fitxers i Directoris
- Ús de Mòduls i Snap-ins
Mòdul 5: Automatització i Programació de Tasques
- Introducció a l'Automatització
- Creació de Tasques Programades
- Ús de PowerShell per a l'Administració del Sistema
- Automatització de Tasques d'Active Directory
- Automatització de Tasques de Xarxa
Mòdul 6: Remotització amb PowerShell
- Introducció a la Remotització
- Configuració de la Remotització
- Ús d'Invoke-Command
- Gestió de Sessions
- Consideracions de Seguretat
Mòdul 7: Funcions Avançades de PowerShell
- Perfils de PowerShell
- Personalització de l'Entorn de PowerShell
- Creació i Ús de Classes
- Treballant amb XML i JSON
- Ús de PowerShell amb REST APIs
Mòdul 8: PowerShell i DevOps
- Introducció a DevOps
- Ús de PowerShell amb Pipelines CI/CD
- Infraestructura com a Codi (IaC)
- Gestió de Recursos al Núvol amb PowerShell
- PowerShell i Docker