Question: I've been putting my first powershell scripts together for the last couple of hours and I keep seeing an error that I can't seem to get to the bottom of.

I'm using the Powershell ISE tool to write and run the scripts.

To see if its something in my script I've created a super simple test script and I'm seeing the same problem. The entire test script is:

```
Test;

function Test
{
    New-Item C:\Users\jgreen\Desktop\jammer\ -type directory
}

```

When I hit the `Run Script` button the error produced is:

```
Test : The term 'Test' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct 
and try again.

```

If I simply hit the `Run Script` button again, it work and does the job. I simply do not understand what is wrong. I simply don't get it. Is there a problem with my script or not?

Why would a script that works bomb out the first time after opening the script in PS ISE?

Answer: 
You are calling the function before it is defined. The reason it works the second time, is a result of the first run. When it is ran the first time it's defining the function, so when you run the script the second time it knows what the function is.
You need to declare your function *before* you invoke it. It works the second time because then it's been declared. Think of how this would work if you were just at a powershell command line and you typed: "Test;" What would you expect to happen?