8-Scripts - Avancé
Ce chapitre traite des structures conditionnelles, des différentes boucles et des exceptions
- Fonctions:
La syntaxe d’une fonction
function FuncHello()
{
param($name)
$date = (Get-Date).ToShortDateString()
Write-Host "Salut $name, nous sommes le $date"
}
La fonction est appelée avec le nom en paramètre d’entrée
FuncHello("Toto")
Un autre exemple avec le résultat :
- Structure conditionnelle:
Structure permettant un choix en fonction d’une expression booléenne
if (expression booléenne)
{instructions}
elseif (expression booléenne)
{instructions}
else
{instructions}
- Switch:
Permet des choix multiples
switch (expression)
{
valeur1
{instructions}
valeur2
{instructions}
default
{instructions}
}
- Boucles:
- While:
L’expression booléenne est testée en premier
while (expression booléenne)
{instructions}
- Do-While:
Il y aura au minimum un passage étant donné que l’expression booléenne est testée à la fin
do
{instructions}
while (expression booléenne)
- For:
Permet de définir le point de départ et celui d’arrivée
for (expression initiale; expression booléenne; expression finale)
{instructions}
L’expression initiale permet d’initialiser le compteur, alors que la finale permet de l’incrémenter
- Foreach-Object:
Permet de parcourir les valeurs d’une collection (généralement d’un tableau)
Foreach ($Element in $Collection)
{instructions}
Il y a d’autres commandes utiles pour les objects
- Try-Catch:
Cette structure permet d’essayer une instruction et de récupérer l’erreur en cas de problème
try
{instructions}
catch
{message}
Ces instructions fonctionnent correctement lorsque les erreurs sont des erreurs de type terminées
Si elles sont non-terminées alors il faut spécifier l’arrêt de l’instruction
try
{instructions} -Erroraction Stop
catch
{message}
Il est possible d’avoir plusieurs blocs Catch et on peut spécifier le type d’erreur avec par exemple catch[System.IO.IOException]
Pour trouver le nom du type complet et correct de l’erreur, il faut utilier $error[0].exception.gettype().fullname
Une fonction, un script ou une tâche peuvent se terminer « mal » par un exit1 ou une exception. Le résultat de la dernière exécution sera n’importe quelle valeur sauf le 0. Tout ce qui est bien terminé (exit=exit0), aura un résultat à « 0x0 ». C’est ce que l’on observe dans le planificateur de tâches ci-dessous.
Ceci permet de faire des contrôles sur « les fichiers de log », que lorsque l’on sait qu’il y a eu un problème.
- Exercices: