about_Operator_Precedence
Description courte
Répertorie les opérateurs PowerShell dans l’ordre de priorité.
Description longue
Les opérateurs PowerShell vous permettent de construire des expressions simples, mais puissantes. Cette rubrique répertorie les opérateurs dans l’ordre de priorité. L’ordre de précédence est l’ordre dans lequel PowerShell évalue les opérateurs lorsque plusieurs opérateurs apparaissent dans la même expression.
Lorsque les opérateurs ont une priorité égale, PowerShell les évalue de gauche à droite lorsqu’ils apparaissent dans l’expression. Les exceptions sont les opérateurs d’assignation, les opérateurs de cast et les opérateurs de négation (!
, -not
, -bnot
), qui sont évalués de droite à gauche.
Vous pouvez utiliser des boîtiers, tels que des parenthèses, pour remplacer l’ordre de priorité standard et forcer PowerShell à évaluer la partie fermée d’une expression avant une partie non fermée.
Dans la liste suivante, les opérateurs sont répertoriés dans l’ordre dans lequel ils sont évalués. Les opérateurs sur la même ligne, ou dans le même groupe, ont une priorité égale.
La colonne Opérateur répertorie les opérateurs. La colonne Référence répertorie la rubrique d’aide PowerShell dans laquelle l’opérateur est décrit. Pour afficher la rubrique, tapez get-help <topic-name>
.
OPERATOR | RÉFÉRENCE |
---|---|
$() @() () @{} |
about_Operators |
. ?. (accès aux membres) |
about_Operators |
:: (statique) |
about_Operators |
[0] ?[0] (opérateur d’index) |
about_Operators |
[int] (opérateurs de cast) |
about_Operators |
-split (unaire) |
about_Split |
-join (unaire) |
about_Join |
, (opérateur virgule) |
about_Operators |
++ -- |
about_Assignment_Operators |
! -not |
about_Logical_Operators |
.. (opérateur de plage) |
about_Operators |
-f (opérateur de format) |
about_Operators |
- (unaire/négatif) |
about_Arithmetic_Operators |
* / % |
about_Arithmetic_Operators |
+ - |
about_Arithmetic_Operators |
Le groupe d’opérateurs suivant a une priorité égale. Leurs variantes respectant la casse et ne respectent pas explicitement la casse ont la même priorité.
OPERATOR | RÉFÉRENCE |
---|---|
-split (binaire) |
about_Split |
-join (binaire) |
about_Join |
-is -isnot -as |
about_Type_Operators |
-eq -ne -gt -ge -lt -le |
about_Comparison_Operators |
-like -notlike |
about_Comparison_Operators |
-match -notmatch |
about_Comparison_Operators |
-in -notIn |
about_Comparison_Operators |
-contains -notContains |
about_Comparison_Operators |
-replace |
about_Comparison_Operators |
La liste reprend ici avec les opérateurs suivants dans l’ordre de priorité :
OPERATOR | RÉFÉRENCE |
---|---|
-band -bnot -bor -bxor -shr -shl |
about_Arithmetic_Operators |
-and -or -xor |
about_Logical_Operators |
Les éléments suivants ne sont pas des opérateurs vrais. Ils font partie de la syntaxe de commande de PowerShell, et non de la syntaxe d’expression. L’affectation est toujours la dernière action qui se produit.
SYNTAX | RÉFÉRENCE |
---|---|
. (dot-source) |
about_Operators |
& (appel) |
about_Operators |
? <if-true> : <if-false> (Opérateur ternaire) |
about_Operators |
?? (opérateur null-coalese) |
about_Operators |
| (opérateur de pipeline) |
about_Operators |
> >> 2> 2>> 2>&1 |
about_Redirection |
&& || (opérateurs de chaîne de pipeline) |
about_Operators |
= += -= *= /= %= ??= |
about_Assignment_Operators |
Exemples
Les deux commandes suivantes montrent les opérateurs arithmétiques et l’effet de l’utilisation de parenthèses pour forcer PowerShell à évaluer la partie entourée de l’expression en premier.
PS> 2 + 3 * 4
14
PS> (2 + 3) * 4
20
L’exemple suivant obtient les fichiers texte en lecture seule à partir du répertoire local et les enregistre dans la $read_only
variable.
$read_only = Get-ChildItem *.txt | Where-Object {$_.isReadOnly}
Il équivaut à l’exemple suivant.
$read_only = ( Get-ChildItem *.txt | Where-Object {$_.isReadOnly} )
Étant donné que l’opérateur de pipeline (|
) a une priorité plus élevée que l’opérateur d’affectation (=
), les fichiers que l’applet Get-ChildItem
de commande obtient sont envoyés à l’applet Where-Object
de commande pour le filtrage avant qu’elles ne soient affectées à la $read_only
variable.
L’exemple suivant montre que l’opérateur d’index est prioritaire sur l’opérateur de cast.
Cette expression crée un tableau de trois chaînes. Ensuite, il utilise l’opérateur d’index avec la valeur 0 pour sélectionner le premier objet du tableau, qui est la première chaîne. Enfin, il convertit l’objet sélectionné en tant que chaîne. Dans ce cas, le cast n’a aucun effet.
PS> [string]@('Windows','PowerShell','2.0')[0]
Windows
Cette expression utilise des parenthèses pour forcer l’opération de cast à se produire avant la sélection d’index. Par conséquent, l’ensemble du tableau est casté sous la forme d’une chaîne (unique). Ensuite, l’opérateur d’index sélectionne le premier élément du tableau de chaînes, qui est le premier caractère.
PS> ([string]@('Windows','PowerShell','2.0'))[0]
W
Dans l’exemple suivant, étant donné que l’opérateur -gt
(supérieur à) a une priorité plus élevée que l’opérateur -and
(AND logique), le résultat de l’expression est FALSE.
PS> 2 -gt 4 -and 1
False
Il équivaut à l’expression suivante.
PS> (2 -gt 4) -and 1
False
Si l’opérateur -and-a une priorité plus élevée, la réponse est TRUE.
PS> 2 -gt (4 -and 1)
True
Toutefois, cet exemple illustre un principe important de gestion de la priorité des opérateurs. Lorsqu’une expression est difficile à interpréter, utilisez des parenthèses pour forcer l’ordre d’évaluation, même lorsqu’elle force la priorité de l’opérateur par défaut. Les parenthèses rendent vos intentions claires aux personnes qui lisent et gèrent vos scripts.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour