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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow