Assurez-vous de lire les articles précédents de la série:
- Apprenez à automatiser Windows avec PowerShell
- Apprendre à utiliser les cmdlets dans PowerShell
- Apprendre à utiliser des objets dans PowerShell
- Apprentissage du formatage, du filtrage et de la comparaison dans PowerShell
- Apprendre à utiliser la communication à distance dans PowerShell
- Utilisation de PowerShell pour obtenir des informations sur l'ordinateur
- Utilisation de collections dans PowerShell
Et restez à l’écoute pour le reste de la série toute la semaine.
Variables
La plupart des langages de programmation autorisent l'utilisation de variables, qui sont simplement des conteneurs contenant des valeurs. Dans PowerShell, nous avons aussi des variables et elles sont vraiment faciles à utiliser. Voici comment créer une variable appelée «Prénom» et lui donner la valeur «Taylor».
$FirstName = “Taylor”
La première chose que la plupart des gens semblent demander, c'est pourquoi nous plaçons un signe dollar devant le nom de la variable, et c'est en fait une très bonne question. En réalité, le symbole du dollar indique simplement au shell que nous voulons accéder au contenu de la variable (pensez à ce qu’il contient dans le conteneur) et non au conteneur lui-même. Dans PowerShell, les noms de variables n'incluent pas le signe dollar, ce qui signifie que, dans l'exemple ci-dessus, le nom de la variable est en réalité «Prénom».
Dans PowerShell, vous pouvez voir toutes les variables que vous avez créées dans la variable PSDrive.
gci variable:
Remove-Item Variable:FirstName
Les variables ne doivent pas non plus contenir un seul objet; vous pouvez tout aussi facilement stocker plusieurs objets dans une variable. Par exemple, si vous souhaitez stocker une liste de processus en cours d'exécution dans une variable, vous pouvez simplement lui affecter la sortie de Get-Process.
$Proc = Get-Process
Le truc pour comprendre cela est de se rappeler que le côté droit du signe égal est toujours évalué en premier. Cela signifie que vous pouvez avoir tout un pipeline du côté droit si vous le souhaitez.
$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3
La variable CPUHogs contiendra désormais les trois processus en cours d'exécution utilisant le plus de ressources processeur.
$CPUHogs.Kill()
Ce qui tuerait les trois processus de la collection. Si vous souhaitez accéder à un seul objet dans la variable, vous devez le traiter comme un tableau.
$CPUHogs[0]
Cela vous donnera le premier objet de la collection.
Ne vous faites pas prendre!
Les variables dans PowerShell sont faiblement typées par défaut, ce qui signifie qu'elles peuvent contenir tout type de données. Cela semble attraper de nouveaux venus dans PowerShell tout le temps!
$a = 10
$b = ‘20’
Nous avons donc deux variables, l’une contenant une chaîne et l’autre un entier. Alors que se passe-t-il si vous les ajoutez? Cela dépend en fait de l'ordre dans lequel vous les ajoutez.
$a + $b = 30
Tandis que
$b + $a = 2010
Dans le premier exemple, le premier opérande est un entier, $ a. PowerShell pense donc que vous essayez de faire des calculs et tente donc de convertir tous les autres opérandes en entiers. Toutefois, dans le deuxième exemple, le premier opérande est une chaîne. PowerShell ne fait que convertir le reste des opérandes en chaînes et les concaténer. Les scripteurs plus avancés empêchent ce genre de tristesse en convertissant la variable selon le type qu'ils attendent.
[int]$Number = 5 [int]$Number = ‘5’
Ce qui précède aboutira à la fois à la variable Number contenant un objet entier avec une valeur de 5.
Entrée et sortie
Dans la mesure où PowerShell est conçu pour automatiser les opérations, vous souhaiterez éviter d’inviter les utilisateurs à fournir des informations lorsque cela est possible. Cela dit, il y aura des moments où vous ne pourrez pas l'éviter, et pour ces moments nous avons l'applet de commande Read-Host. Son utilisation est vraiment simple:
$FirstName = Read-Host –Prompt ‘Enter your first name’
Write-Output “How-To Geek Rocks!”