Les Opérateurs en Powershell – Part 1.2

Les opérateurs powershell
Les opérateurs powershell

Introduction

Les opérateurs sont des éléments essentiels en PowerShell, permettant de manipuler et comparer des données de manière efficace. Dans cet article, nous explorerons les différents types d’opérateurs disponibles en PowerShell, en utilisant l’exemple ludique de Marie qui gère son arbre généalogique familial.

Opérateurs arithmétiques

Les opérateurs arithmétiques permettent d’effectuer des calculs mathématiques de base.

Syntaxe et utilisation

  • Addition : +
  • Soustraction : -
  • Multiplication : *
  • Division : /
  • Modulo (reste de division) : %

Exemples

$ageAncetre = 2023 - 1920
$ageFamilial = 2023 - 1920 + 10

Ces opérateurs peuvent être combinés pour des calculs plus complexes :

$ageMoyen = ($agePere + $ageMere + $ageEnfant) / 3

Opérateurs de comparaison

Les opérateurs de comparaison permettent de comparer des valeurs et retournent un résultat booléen (vrai ou faux).

Syntaxe et utilisation

Méthode 1 :

  • Les plus utilisés
  • Égal à : -eq
  • Différent de : -ne
  • Supérieur à : -gt
  • Inférieur à : -lt
  • Supérieur ou égal à : -ge
  • Inférieur ou égal à : -le
  • Autre possibilité (-c pour Case-Sensitive) ; (-ieq même chose que -eq)
  • -eq-ieq-ceq – equals
  • -ne-ine-cne – not equals
  • -gt-igt-cgt – greater than
  • -ge-ige-cge – greater than or equal
  • -lt-ilt-clt – less than
  • -le-ile-cle – less than or equal

Méthode 2 :

Exemples

2 -eq 2                 # Output: True
# Date comparison
[DateTime]'2001-11-12' -lt [DateTime]'2020-08-01' # True

(1 -eq 1) -and (1 -eq 2)   # Result is False

-not (1 -eq 1)             # Result is False
!(1 -eq 1)                 # Result is False
$estMajeur = ($age -ge 18)
$estMajeur
Les opérateurs powershell
Les opérateurs powershell

Opérateurs logiques

Les opérateurs logiques permettent de combiner plusieurs conditions.

Syntaxe et utilisation

  • ET : -and
  • OU : -or
  • NON : -not

Exemple

$a,$b  = 6,4
($a -gt $b) -and (($a -lt 20) -or ($b -lt 20))
#True

Opérateurs de contenance

Ces opérateurs vérifient si un élément est présent dans une collection.

Syntaxe et utilisation

  • -contains, , -icontains, -ccontains – collection contient une valeur
  • -notcontains, , -inotcontains– -cnotcontains collection ne contient pas de valeur
  • -in – la valeur se trouve dans une collection
  • -notin – la valeur n’est pas dans une collection

Exemples

$fruit = "pomme"
if ($fruit -in @("pomme", "banane", "orange")) { 
    "C'est un fruit que j'aime" 
}

$fruits = @("pomme", "banane", "orange")
if ($fruits -contains "banane") { 
    "Nous avons des bananes" 
}

Opérateurs de correspondance

Ces opérateurs permettent de vérifier si une chaîne correspond à un motif.

Syntaxe et utilisation

  • -like, -ilike– -clike chaîne correspond au modèle générique
  • -notlike, , -inotlike– -cnotlike chaîne ne correspond pas au modèle générique
  • -match, , -imatch– -cmatch chaîne correspond au modèle regex
  • -notmatch, , -inotmatch– -cnotmatch chaîne ne correspond pas au modèle regex

Remplacement

  • -replace, , – -ireplace-creplace remplace les chaînes correspondant à un modèle d’expression régulière

Exemples

# Partial match test, showing how differently -match and -like behave
"PowerShell" -match 'shell'        # Output: True
"PowerShell" -like  'shell'        # Output: False

# Regex syntax test
"PowerShell" -match    '^Power\w+' # Output: True
'bag'        -notmatch 'b[iou]g'   # Output: True
"book" -ireplace "B", "C" # Case insensitive
"book" -creplace "B", "C" # Case-sensitive; hence, nothing to replace

"PowerShell" -like    "Po?er[p-w]hell"   # Output: True
"PowerShell" -notlike "P?wer[p-w]hell"   # Output: False

"PowerShell", "Server" -like "*shell"    # Output: PowerShell
"PowerShell", "Server" -notlike "*shell" # Output: Server

$a, $b = 10,25
$b -isnot [int]        # Output: False
$a -is $b.GetType() # Output: True

Opérateurs d’affectation

Ces opérateurs permettent d’assigner des valeurs à des variables.

Syntaxe et utilisation

  • Affectation simple : =
  • Incrémentation : ++
  • Décrémentation : --
  • Affectation avec opération : +=, -=, *=, /=

Exemples

$agePapa++  # Ajoute 1 à l'âge de Papa
$agePapa += 3  # Ajoute 3 à l'âge de Papa
$AgeGrandPapa *= 3  # Multiplie l'âge de Grand-Papa par 3

Résumé des opérateurs d’affectation :

OpérateurFonctionExemple
=Affectation de valeur.$variable = 10
+=Addition et réaffectation.$variable += 5
-=Soustraction et réaffectation.$variable -= 3
*=Multiplication et réaffectation.$variable *= 2
/=Division et réaffectation.$variable /= 4
%=Modulo et réaffectation.$variable %= 3
+= (pour chaîne)Concatenation de chaînes.$variable += " ajout"
? :Affectation conditionnelle.$resultat = (condition) ? "true" : "false"

Opérateurs de redirection

Ces opérateurs permettent de rediriger la sortie des commandes.

Syntaxe et utilisation

  • Redirection vers un fichier : >
  • Ajout à un fichier : >>
  • Redirection des erreurs : 2>
  • Redirection de tout : *>

Exemples

$nomFamille > "famille.txt"  # Écrit dans un nouveau fichier
$nomFamille >> "famille.txt"  # Ajoute à la fin du fichier
Get-Process nonexistentprocess 2> errors.txt  # Redirige les erreurs

Conclusion

Les opérateurs en PowerShell offrent une grande flexibilité pour manipuler et analyser des données. En maîtrisant ces opérateurs, Marie peut efficacement gérer et analyser son arbre généalogique, effectuant des calculs d’âge, comparant des dates, filtrant des membres de la famille et organisant ses données de manière efficace.

La pratique régulière et l’expérimentation avec différents scénarios permettront à Marie (et à vous) de devenir plus à l’aise avec ces opérateurs, ouvrant la voie à des scripts PowerShell plus complexes et puissants.

Les opérateurs powershell
Les opérateurs powershell

Liens internes

Liens externes

Comments

No comments yet. Why don’t you start the discussion?

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *