Geek School: Apprentissage des variables PowerShell, entrée et sortie

Table des matières:

Geek School: Apprentissage des variables PowerShell, entrée et sortie
Geek School: Apprentissage des variables PowerShell, entrée et sortie

Vidéo: Geek School: Apprentissage des variables PowerShell, entrée et sortie

Vidéo: Geek School: Apprentissage des variables PowerShell, entrée et sortie
Vidéo: Débutant : comment créer son premier script PowerShell ? - YouTube 2024, Peut
Anonim
Au fur et à mesure que nous nous écartons de l'exécution de commandes et de l'écriture de scripts complets, vous aurez besoin d'un emplacement temporaire pour stocker des données. C'est là que les variables entrent en jeu.
Au fur et à mesure que nous nous écartons de l'exécution de commandes et de l'écriture de scripts complets, vous aurez besoin d'un emplacement temporaire pour stocker des données. C'est là que les variables entrent en jeu.

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:

Ce qui signifie que vous pouvez également supprimer une variable du shell à tout moment:
Ce qui signifie que vous pouvez également supprimer une variable du shell à tout moment:

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.

Lorsque vous avez une variable contenant une collection d'objets, il y a certaines choses à prendre en compte. Par exemple, l'appel d'une méthode sur la variable entraînera son appel sur chaque objet de la collection.
Lorsque vous avez une variable contenant une collection d'objets, il y a certaines choses à prendre en compte. Par exemple, l'appel d'une méthode sur la variable entraînera son appel sur chaque objet de la collection.

$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.

Image
Image

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’

Tout ce que vous entrez sera alors sauvegardé dans la variable.
Tout ce que vous entrez sera alors sauvegardé dans la variable.
L'écriture de la sortie est tout aussi facile avec la cmdlet Write-Output.
L'écriture de la sortie est tout aussi facile avec la cmdlet Write-Output.

Write-Output “How-To Geek Rocks!”

Conseillé: