PowerShell
Les opérateurs
Recherche…
Introduction
Un opérateur est un caractère qui représente une action. Il indique au compilateur / interprète d'effectuer des opérations mathématiques, relationnelles ou logiques spécifiques et de produire un résultat final. PowerShell interprète de manière spécifique et classe en conséquence, comme les opérateurs arithmétiques effectuent des opérations principalement sur les nombres, mais ils affectent également les chaînes et autres types de données. Avec les opérateurs de base, PowerShell dispose d'un certain nombre d'opérateurs qui permettent de gagner du temps et de réduire les efforts de codage (ex: -comme, -match, -remplace, etc.).
Opérateurs arithmétiques
1 + 2 # Addition
1 - 2 # Subtraction
-1 # Set negative value
1 * 2 # Multiplication
1 / 2 # Division
1 % 2 # Modulus
100 -shl 2 # Bitwise Shift-left
100 -shr 1 # Bitwise Shift-right
Opérateurs logiques
-and # Logical and
-or # Logical or
-xor # Logical exclusive or
-not # Logical not
! # Logical not
Opérateurs d'affectation
Arithmétique simple:
$var = 1 # Assignment. Sets the value of a variable to the specified value
$var += 2 # Addition. Increases the value of a variable by the specified value
$var -= 1 # Subtraction. Decreases the value of a variable by the specified value
$var *= 2 # Multiplication. Multiplies the value of a variable by the specified value
$var /= 2 # Division. Divides the value of a variable by the specified value
$var %= 2 # Modulus. Divides the value of a variable by the specified value and then
# assigns the remainder (modulus) to the variable
Incrémenter et décrémenter:
$var++ # Increases the value of a variable, assignable property, or array element by 1
$var-- # Decreases the value of a variable, assignable property, or array element by 1
Opérateurs de comparaison
Les opérateurs de comparaison PowerShell se composent d'un tiret ( -
) suivi d'un nom ( eq
pour equal
, gt
pour greater than
, etc.).
Les noms peuvent être précédés de caractères spéciaux pour modifier le comportement de l'opérateur:
i # Case-Insensitive Explicit (-ieq)
c # Case-Sensitive Explicit (-ceq)
Case-Insensitive est la valeur par défaut si elle n'est pas spécifiée ("a" -eq "A") identique à ("a" -ieq "A").
Opérateurs de comparaison simples:
2 -eq 2 # Equal to (==)
2 -ne 4 # Not equal to (!=)
5 -gt 2 # Greater-than (>)
5 -ge 5 # Greater-than or equal to (>=)
5 -lt 10 # Less-than (<)
5 -le 5 # Less-than or equal to (<=)
Opérateurs de comparaison de chaînes:
"MyString" -like "*String" # Match using the wildcard character (*)
"MyString" -notlike "Other*" # Does not match using the wildcard character (*)
"MyString" -match "$String^" # Matches a string using regular expressions
"MyString" -notmatch "$Other^" # Does not match a string using regular expressions
Opérateurs de comparaison de collections:
"abc", "def" -contains "def" # Returns true when the value (right) is present
# in the array (left)
"abc", "def" -notcontains "123" # Returns true when the value (right) is not present
# in the array (left)
"def" -in "abc", "def" # Returns true when the value (left) is present
# in the array (right)
"123" -notin "abc", "def" # Returns true when the value (left) is not present
# in the array (right)
Opérateurs de redirection
Flux de sortie réussi:
cmdlet > file # Send success output to file, overwriting existing content
cmdlet >> file # Send success output to file, appending to existing content
cmdlet 1>&2 # Send success and error output to error stream
Erreur de flux de sortie:
cmdlet 2> file # Send error output to file, overwriting existing content
cmdlet 2>> file # Send error output to file, appending to existing content
cmdlet 2>&1 # Send success and error output to success output stream
Flux de sortie d'avertissement: (PowerShell 3.0+)
cmdlet 3> file # Send warning output to file, overwriting existing content
cmdlet 3>> file # Send warning output to file, appending to existing content
cmdlet 3>&1 # Send success and warning output to success output stream
Flux de sortie détaillé: (PowerShell 3.0+)
cmdlet 4> file # Send verbose output to file, overwriting existing content
cmdlet 4>> file # Send verbose output to file, appending to existing content
cmdlet 4>&1 # Send success and verbose output to success output stream
Flux de sortie de débogage: (PowerShell 3.0+)
cmdlet 5> file # Send debug output to file, overwriting existing content
cmdlet 5>> file # Send debug output to file, appending to existing content
cmdlet 5>&1 # Send success and debug output to success output stream
Flux de sortie d'information: (PowerShell 5.0+)
cmdlet 6> file # Send information output to file, overwriting existing content
cmdlet 6>> file # Send information output to file, appending to existing content
cmdlet 6>&1 # Send success and information output to success output stream
Tous les flux de sortie:
cmdlet *> file # Send all output streams to file, overwriting existing content
cmdlet *>> file # Send all output streams to file, appending to existing content
cmdlet *>&1 # Send all output streams to success output stream
Différences par rapport à l'opérateur de tuyauterie ( |
)
Les opérateurs de redirection redirigent uniquement les flux vers des fichiers ou des flux vers des flux. L'opérateur de canalisation achemine un objet dans le pipeline vers une applet de commande ou la sortie. Le fonctionnement du pipeline diffère en général du fonctionnement de la redirection et peut être lu lors de l'utilisation du pipeline PowerShell
Mélanger les types d'opérandes: le type de l'opérande gauche détermine le comportement.
Pour ajout
"4" + 2 # Gives "42"
4 + "2" # Gives 6
1,2,3 + "Hello" # Gives 1,2,3,"Hello"
"Hello" + 1,2,3 # Gives "Hello1 2 3"
Pour la multiplication
"3" * 2 # Gives "33"
2 * "3" # Gives 6
1,2,3 * 2 # Gives 1,2,3,1,2,3
2 * 1,2,3 # Gives an error op_Multiply is missing
L'impact peut avoir des conséquences cachées sur les opérateurs de comparaison:
$a = Read-Host "Enter a number"
Enter a number : 33
$a -gt 5
False
Opérateurs de manipulation de chaînes
Remplacez l'opérateur:
L'opérateur -replace
remplace un motif dans une valeur d'entrée à l'aide d'une expression régulière. Cet opérateur utilise deux arguments (séparés par une virgule): un modèle d'expression régulière et sa valeur de remplacement (qui est facultative et une chaîne vide par défaut).
"The rain in Seattle" -replace 'rain','hail' #Returns: The hail in Seattle
"[email protected]" -replace '^[\w]+@(.+)', '$1' #Returns: contoso.com
Opérateurs Split et Join:
L'opérateur -split
divise une chaîne en un tableau de sous-chaînes.
"A B C" -split " " #Returns an array string collection object containing A,B and C.
L'opérateur -join
joint un tableau de chaînes en une seule chaîne.
"E","F","G" -join ":" #Returns a single string: E:F:G