50
votes

I've got some additional functions that I've defined in an additional PowerShell script file, that I'm trying to load in a main .ps1 file. However, when I call the .ps1 file from the PowerShell prompt it doesn't seem to run through those commands.

In the following code example, build_functions.ps1 has code that defines various custom functions. If I run the file separately (for example, running it by itself and then running through the primary script) it works fine. Build_builddefs.ps1 contains a number of variables that also need to be populated prior to running the primary script.

At the beginning of my primary script I have this:

.\build_functions.ps1
.\build_builddefs.ps1

However, these don't seem to be run, because the primary script fails when it tries to execute the first custom function. What am I doing wrong?

2
Nice link on loading functions at PS startup: sandfeld.net/powershell-load-your-functions-at-startup - Andrew

2 Answers

58
votes

You have to dot source them:

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

Note the extra .

This heyscriptingguy article should be of help - How to Reuse Windows PowerShell Functions in Scripts

40
votes

I kept using this all this time

Import-module .\build_functions.ps1 -Force