Lors de l’élaboration de différents scripts en PowerShell, j’ai mis du temps avant de trouver comment nous pouvions faire appel à un fichier regroupant un ensemble de fonctions écrites, et ainsi simplifier et factoriser notre code.
Le but étant « d’appeler » (et non d’exécuter) ce fichier à chaque fois que l’on fait référence à une fonction, dans son « programme principal » par exemple.
Après quelques heures de recherche sur le net, je suis enfin parvenu à trouver un tutoriel clair et concis qui faisait exactement ce que je souhaitais.
Pour ce faire il faut passer par deux étapes :
- Créer un fichier functions.psm1
En effet, vous ne pouvez pas passer par un fichier classique PowerShell (.ps1), car celui-ci serait alors « Interprété », ce que nous voulons surtout pas.
- Inclure dans vo(s) programme(s) le lien vers ce fichiers regroupant vos fonctions.
Nous allons pouvoir réaliser cela par l’intermédiaire de la variable d’environnement : $PSScriptRoot
Démonstration
Créons un répertoire « monApplication » sur le bureau :
Puis, créons le fichier functions.psm1, ainsi que le fichier main.ps1 qui représenteras notre programme principal.
Puis éditer les deux fichiers par le biais de votre IDE préféré :
- Ecrivez une fonction basique comme ci-dessous :
- Dans le fichier main.ps1, je vais faire référence à la fonction que j’ai écrite dans le fichier functions.psm1
Enregistrez, puis exécuter le fichier main.ps1
Voilà, votre fichier main.ps1 « appel » bien le fichier functions.psm1 qui contient notre fonction que nous avons écrite message($texte).
++
Brlndtech