Chargement de fonctions personnalisées dans Powershell

J'ai quelques fonctions supplémentaires que j'ai définies dans un fichier de script Powershell supplémentaire, que j'essaie de charger dans un fichier .ps1 principal. Cependant, quand j'appelle le fichier. ps1 à partir de L'invite Powershell, il ne semble pas fonctionner à travers ces commandes.

Dans l'exemple de code suivant, build_functions. ps1 a un code qui définit diverses fonctions personnalisées. Si je lance le fichier séparément (par exemple, en l'exécutant par lui-même, puis en exécutant le script principal), cela fonctionne bien. Build_builddefs. ps1 contient un certain nombre de variables qui doivent également être remplies avant d'exécuter le script principal.

Au début de mon script principal, j'ai ceci:

.build_functions.ps1
.build_builddefs.ps1

Cependant, ceux-ci ne semblent pas être exécutés car le script principal échoue lorsqu'il essaie d'exécuter la première fonction personnalisée. Ce que je fais mal?

25
demandé sur Sean Long 2013-09-12 16:29:02

2 réponses

Vous devez dot source eux:

. .\build_funtions.ps1
. .\build_builddefs.ps1

Notez l'extra - .

Cet article heyscriptingguy devrait être utile - http://blogs.technet.com/b/heyscriptingguy/archive/2010/08/10/how-to-reuse-windows-powershell-functions-in-scripts.aspx

29
répondu manojlds 2013-09-12 13:08:57

J'ai continué à l'utiliser tout ce temps

Import-module .\build_functions.ps1 -Force
8
répondu Rohin Sidharth 2016-04-21 03:11:53