221 votes

Qu'est-ce que signifie $_ en PowerShell ?

J'ai vu beaucoup de fois cela en PowerShell, mais qu'est-ce que cela fait exactement?

$_

1voto

Bill Points 2753

$_ est une variable qui itère sur chaque objet/élément passé du précédent | (pipe).

0voto

Daikyu Points 59

Le $_ est un $PSItem, qui est essentiellement un objet envoyé depuis une autre commande. Par exemple, en exécutant Get-Volume sur mes postes de travail, renvoie des lignes de PSItems, ou objets

get-volume | select driveLetter,DriveType   

driveLetter DriveType
----------- ---------
      D      Fixed
             Fixed
      C      Fixed
      A      Removable

Driveletter et DriveType sont des propriétés Maintenant, vous pouvez utiliser ces propriétés d'éléments lors du transfert de la sortie avec $_.(propertyName). (Rappelez-vous également que % est un alias pour Foreach-Object) Par exemple

$vol = get-volume | select driveLetter,DriveType

$vol | Foreach-Object {
    if($_.DriveType -eq "Fixed") {
        "$($_.driveLetter) est $($_.driveType)"}
     else{
        "$($_.driveLetter) est $($_.driveType)"
     }
 }

En utilisant la Terinary en Powershell 7, je suis capable de raccourcir la logique tout en utilisant les propriétés du PSItem pipé

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X