Le langage PowerShell
PowerShell est à la fois un langage de script et un interpréteur de commandes (à l'instar de l'interpréteur classique, cmd.exe).
Non seulement PowerShell permet le développement de scripts, il est également optimisé pour la ligne de commande. Sans même écrire un fichier de script, on peut faire à la ligne de commande ce qui aurait autrement nécessité un script dans plusieurs autres shells.
Notions
🗃️ Les commandes
3 éléments
📄️ Les objets
Les commandes PowerShell retournent un ou plusieurs objets. Un objet est une structure de données, un élément logique d'information d'une structure définie par une classe (ou type). Il est composé de plusieurs membres, soit des propriétés (ou méthodes), qui représentent de l'information décrivant l'objet, et des méthodes (ou fonctions) qui posent une action sur cet objet.
📄️ Le pipeline
Le pipeline est le mécanisme par lequel l'information circule dans une session PowerShell. Il permet de chaîner des commandes afin que l'objet sortant d'une commande entre dans la prochaine pour y être traité. Le caractère pour chaîner les commande est la barre verticale | (appelée "pipe" ou "tube").
📄️ Les variables et les types
Les variables en PowerShell sont identifiées avec le préfixe $. Par exemple, la variable Foo s'écrit $Foo dans le code PowerShell. Le nom de la variable est Foo, et le caractère $ indique à PowerShell qu'il s'agit d'une variable.
📄️ Les chaînes de caractères
Chaînes de caractères
📄️ Les opérateurs
Opérateurs arithmétiques
📄️ Les tableaux (arrays)
Les commandes PowerShell retournent souvent non pas un objet, mais plusieurs objets dans le pipeline. Par exemple, il est fréquent que la commande Get-ChildItem retourne plus d'un objet, car il y a généralement plusieurs fichiers et dossiers dans un dossier.
📄️ Les dictionnaires
Un dictionnaire, aussi appelé tableau associatif, est une structure de données qui se caractérise par une liste de correspondance entre une clé et une valeur, qui représentent des propriétés. La clé représente le nom de la propriété, et la valeur, son contenu. Contrairement aux tableaux, l'ordre des éléments n'a pas d'importance, justement parce qu'on peut y accéder librement en utilisant la clé.