Recherche…


Introduction

Les variables automatiques sont créées et gérées par Windows PowerShell. On a la possibilité d'appeler une variable à peu près n'importe quel nom dans le livre; Les seules exceptions sont les variables déjà gérées par PowerShell. Ces variables seront sans aucun doute les objets les plus répétitifs que vous utiliserez dans PowerShell à côté des fonctions (comme $? - indique le statut Success / Failure de la dernière opération).

Syntaxe

  • $$ - Contient le dernier jeton de la dernière ligne reçue par la session.
  • $^ - Contient le premier jeton de la dernière ligne reçue par la session.
  • $? - Contient le statut d'exécution de la dernière opération.
  • $_ - Contient l'objet en cours dans le pipeline

$ pid

Contient l'ID de processus du processus d'hébergement en cours.

PS C:\> $pid
26080

Valeurs booléennes

$true et $false sont deux variables représentant VRAI et FAUX.

Notez que vous devez spécifier le signe dollar comme premier caractère (différent de C #).

$boolExpr = "abc".Length -eq 3 # length of "abc" is 3, hence $boolExpr will be True
if($boolExpr -eq $true){
    "Length is 3"
}
# result will be "Length is 3" 
$boolExpr -ne $true
#result will be False

Notez que lorsque vous utilisez booléen true / false dans votre code, vous écrivez $true ou $false , mais lorsque Powershell renvoie un booléen, il ressemble à True ou False

$ null

$null est utilisé pour représenter une valeur absente ou indéfinie.
$null peut être utilisé comme espace réservé vide pour les valeurs vides dans les tableaux:

PS C:\> $array = 1, "string", $null
PS C:\> $array.Count
3

Lorsque nous utilisons le même tableau que la source de ForEach-Object , il traitera les trois éléments (y compris $ null):

PS C:\> $array | ForEach-Object {"Hello"}
Hello
Hello
Hello

Faites attention! Cela signifie que ForEach-Object traitera même $null par lui - même:

PS C:\> $null | ForEach-Object {"Hello"} # THIS WILL DO ONE ITERATION !!!
Hello

Ce qui est un résultat très inattendu si vous le comparez à la boucle foreach classique:

PS C:\> foreach($i in $null) {"Hello"} # THIS WILL DO NO ITERATION
PS C:\>

$ OFS

La variable appelée Output Field Separator contient une valeur de chaîne utilisée lors de la conversion d'un tableau en chaîne. Par défaut $OFS = " " ( un espace ), mais il peut être modifié:

PS C:\> $array = 1,2,3
PS C:\> "$array" # default OFS will be used
1 2 3
PS C:\> $OFS = ",." # we change OFS to comma and dot
PS C:\> "$array"
1,.2,.3

$ _ / $ PSItem

Contient l'objet / élément en cours de traitement par le pipeline.

PS C:\> 1..5 | % { Write-Host "The current item is $_" }
The current item is 1
The current item is 2
The current item is 3
The current item is 4
The current item is 5

$PSItem et $_ sont identiques et peuvent être utilisés indifféremment, mais $_ est de loin le plus utilisé.

$?

Contient le statut de la dernière opération. Lorsqu'il n'y a pas d'erreur, il est défini sur True :

PS C:\> Write-Host "Hello"
Hello
PS C:\> $?
True

S'il y a une erreur, elle est définie sur False :

PS C:\> wrt-host
wrt-host : The term 'wrt-host' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ wrt-host
+ ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (wrt-host:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\> $?
False

$ erreur

Tableau des objets d'erreur les plus récents. Le premier dans le tableau est le plus récent:

PS C:\> throw "Error" # resulting output will be in red font
Error
At line:1 char:1
+ throw "Error"
+ ~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Error:String) [], RuntimeException
    + FullyQualifiedErrorId : Error

PS C:\> $error[0] # resulting output will be normal string (not red    )
Error
At line:1 char:1
+ throw "Error"
+ ~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Error:String) [], RuntimeException
    + FullyQualifiedErrorId : Error

Conseils d'utilisation: Lorsque vous utilisez la variable $error dans une applet de commande de format (par exemple, une liste de format), -Force à utiliser le commutateur -Force . Sinon, l'applet de commande de format va afficher le contenu d' $error ci-dessus.

Les entrées d'erreur peuvent être supprimées via par exemple $Error.Remove($Error[0]) .



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